用于安全嵌入mustache.js模板的django模板标记。

django-mustachejs的Python项目详细描述


build status

一个templatetag框架,便于集成mustache.jsjavascript 带有django模板的模板。灵感来自ICanHaz.jsdjango-icanhaz, 以及jquery.mustache

快速使用

(阅读Read the Docs上的完整文档)

"mustachejs"添加到INSTALLED_APPS设置中。

app/jstemplates/main.mustache

<div>
  <p>This is {{ name }}'s template</p>
</div>

app/templates/main.html

{% load mustachejs %}

<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
  <script src="{{ STATIC_URL }}mustache/js/mustache-0.3.0.js"></script>
  <script src="{{ STATIC_URL }}mustache/js/django.mustache.js"></script>
</head>

<body>
  <div id="dynamic-area"></div>

  {% mustachejs "main" %}

  <script>
    $(document).ready(function() {

      var $area = $('#dynamic-area')
        , template;

      template = Mustache.template('main');
      $area.html(template.render());

    });
  </script>
</body>
</html>

基本原理(来自django-icanhaz

django模板使用{{}}作为模板之间的冲突 变量标记和mustache.js的使用产生了 解决。One solution只需将[[]]替换为{{}}mustachejs模板标记中;another进行了有效的尝试 在django模板块中重建逐字文本 已经被django模板标记器损坏。

我更喜欢将javascript模板保存在单独的文件中 目录,以避免服务器端和客户端之间的混淆 模板制作。所以我对一系列解决方案的贡献本质上就是 “include”标记避免将包含的文件解析为django模板(和 为了方便起见,自动将其包装在脚本标记中,该标记是ICanHaz.js 希望能找到它)。

享受吧!

变化

0.8.3

  • 修复makemessages命令中不正确的标识符名称

0.8.2

  • 修复fileSystemRegexFinder,使其与中指定的扩展名完全匹配。 配置,不再需要

0.8.1

  • 修复makeMessages以处理最近的代码更新

0.8.0

  • 让regex查找程序尊重mustachejs\u exts设置
  • 更新普通文件查找程序以使用全局模式

0.7.4

  • 修复i18n预处理器以实现python 2.6兼容性

0.7.3

  • 正确转义的翻译字符串。

0.7.2

  • 将搜索模式更改为非贪婪。

0.7.1

  • 用新行处理翻译字符串。

0.7.0

  • 从django icanhaz拉入commit以使用常规 表达。
  • 添加了预处理框架,并为i18n添加了预处理器。
  • 劫持makeMessages命令以查找js模板消息。

0.6.0

  • 添加dustjs标记以插入脚本块以创建已编译的dustjs 模板。多亏了Gehan Gonsalkorale

0.5.0

  • 添加mustacheraw标记以仅插入mustacehe模板的原始文本。 感谢格雷格·欣奇。
  • 添加mustacheich标记以按照icanhaz的要求插入胡子脚本块。

0.4.1(2012.01.09)

  • 固定模板读取显式解码模板文件内容使用 django的FILE_CHARSET设置。谢谢爱德华伊斯坎达罗夫。
  • 修复了在 MUSTACHEJS_DIRS。感谢Eduard Iskandarov的报告和补丁。

0.4.0

  • 添加mustachejs_exts配置变量以指定扩展 允许使用由filesystemfinder定位的模板文件(并且,根据扩展名, 应用程序查找器)。

0.3.3

  • 将package_数据值添加到设置调用中

0.3.2

  • 将manifest.in文件本身添加为manifest.in中的条目。

0.3.0

  • 把名字从django icanhaz改成django mustachejs。
  • 删除对icanhaz.js的依赖。我喜欢图书馆,但维修人员 目前还没有足够的反应。直接使用mustache.js,稍微 少量的糖。模板被呈现为直接的javascript。

0.2.0(2011.06.26)

  • 使模板查找更加灵活:^ {Tt17}$现在是^ {TT18}$ (列表);添加了ICANHAZ_FINDERSICANHAZ_APP_DIRNAMES,并查找 已安装应用中的模板。

0.1.0(2011.06.22)

  • 初次发布。

待办事项

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
基于Java的遗传算法确定最优交易行为   java改型2.0无法解析Json嵌套对象   java在数组中查找最大额定值(数字),我们不能跳过数组中的一个或多个连续数字   java在spring boot中从命令行设置活动概要文件和配置位置   JavaAxis2:传输错误:404错误:未找到帮助理解其真正含义   java使用Play2WAR和Play2.2.1   java理解函数运算符:Lambda   在代理java后面读取https网页数据   java应用程序。Android单元测试中的类mock   java为什么onClick布局XML引用的方法需要是公共的?   从SMTLIB2文件解析的java显示声明   java重写给定的类以使用组合而不是继承   HTMLUnit和Java:NoSuchMethodException:createDefaultSSLContext()   java如何使用Spring和ThymeLeaf从前端正确更新后端中的对象?   来自init()Java的方法调用   使用cellrendering从数据库向JTable动态添加数据后,java无法使用JTable执行排序操作   java Android Studio 1.5.1。渲染错误(浮动操作按钮)   web服务如何使用UsenameToken和PasswordDigest为JAVA中的SOAP客户端附加wsse安全头   java为什么要在局部变量和myApplicationClass中同时删除“ArrayList.remove”?