轻松将Handlebars.js模板嵌入到您的Django模板中
项目描述
django-templatetag-handlebars 允许您将 Handlebars.js 模板嵌入到您的Django模板中。
大部分模板标签代码来自 Miguel Araujo的原始片段。
安装
pip install django-templatetag-handlebars
用法
将 templatetag_handlebars 添加到您的 INSTALLED_APPS
添加HTML标题
{% load templatetag_handlebars %} <head> {% handlebars_js %} ... </head>
调用模板标签,并编写您的Handlebars模板
{% tplhandlebars "tpl-infos" %} {{total}} {% trans "result(s)." %} <p>{% trans "Min" %}: {{min}}</p> <p>{% trans "Max" %}: {{max}}</p> {% endtplhandlebars %}
以下块将显示在您的页面上
<script type="text/x-handlebars" id="tpl-infos"> {{total}} result(s). <p>Min: {{min}}</p> <p>Max: {{max}}</p> <script>
在客户端,如往常一样使用 Handlebars.js API进行渲染
var properties = { total: 10, min: 4, max: 5 }; var template = Handlebars.compile($('#tpl-infos').html()), rendered = template(properties);
您的渲染字符串已准备好,并等待将其插入DOM中 :)
10 result(s). <p>Min: 4</p> <p>Max: 5</p>
高级
有一个 {% verbatim %} 标签可以转义特定部分。例如,您可能希望您的 Handlebars 模板的一部分由Django渲染
<script type="text/x-handlebars" id="tpl-django-form"> <form> {% verbatim %} {{#if id}}<h1>{{first}} {{last}}</h1>{{/if}} {% trans "Your id is" %} {{ id }} {% endverbatim %} {{ yourform.as_p }} </form> </script>
使用Ember.js
在 settings.py 中确保将以下属性设置为 True。这是由于 Ember.js 期望略有不同的脚本id声明
USE_EMBER_STYLE_ATTRS = True
脚本块将被渲染为 `<script type="text/x-handlebars" data-template-name="%s">`。
许可证
GNU Lesser General Public License
Handlebars.js 在MIT许可证下发布 - 版权所有 2011 Yehuda Katz
变更日志
1.3.1 (2016-01-04)
添加Python3兼容性(感谢Tadas Dailyda)
1.3.0 (2015-05-26)
添加Django 1.8兼容性(感谢@markvl)
1.2.0 (2012-05-30)
添加与Ember.js的兼容性(通过设置启用,默认为False)。请参阅README.rst。
1.1.0 (2012-03-26)
移除使用模板标签的模板Egg加载器的依赖
1.0.1 (2012-03-16)
修复打包
1.0.0 (2012-03-16)
初始工作版本
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
django-templatetag-handlebars-1.3.1.zip (28.3 kB 查看散列值)
关闭
django-templatetag-handlebars-1.3.1.zip的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7db0a35d541d11927cdd15dc8a2e7cebcd1421a4ca5cd948aa4fbe63d69936ff |
|
MD5 | cccd0b7025faf60974202b0d364341c4 |
|
BLAKE2b-256 | 5565e1459f168ee58f7399b2b952728c766a5f49ea7d27a22346fa27d2f2db43 |