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

django-icanhaz的Python项目详细描述


一个templateTag,用于更容易地将ICanHaz.jsjavascript模板与 Django模板。

快速启动

依赖性

通过主干用Django1.3和Python2.6和2.7测试。几乎 当然适用于这两种版本的旧版本。

安装

使用pip

从pypi安装
pip install django-icanhaz

或者获取in-development version

pip install django-icanhaz==dev

使用量

  • "icanhaz"添加到INSTALLED_APPS设置中。
  • ICANHAZ_DIRS设置设置为完整(绝对)路径列表 目录,您将存储您的icanhaz模板。
  • {% load icanhaz %}并在 django模板安全嵌入icanhaz.js模板 <ICANHAZ_DIRS-entry>/templatename.html进入你的django模板, 自动包装在<script id="templatename"type="text/html">, 准备好在javascript中使用ich.templatename({...})

django-icanhaz不捆绑ICanHaz.js或提供任何javascript 实用程序;它只是帮助您轻松地将模板嵌入到HTML中。包括 ICanHaz.js在项目的静态资产中,并像往常一样在js中使用它。

高级使用

您还可以将icanhaz模板与django可重用应用程序捆绑在一起;默认情况下 django-icanhaz将在的jstemplates子目录中查找模板 INSTALLED_APPS中的每个应用程序。要检查的应用子目录名可以是 通过ICANHAZ_APP_DIRNAMES设置配置,默认为 ["jstemplates"]

模板的查找可以通过^{tt16}完全控制$ 设置,这是指向查找程序类的虚线路径列表。发现类 应该是不带参数的可实例化的,并且有一个find(name)方法 它返回给定基名称的模板文件的完整绝对路径。

默认情况下,ICANHAZ_FINDERS包含"icanhaz.finders.FilesystemFinder" (搜索ICANHAZ_DIRS中列出的目录)和 "icanhaz.finders.AppFinder"(搜索 INSTALLED_APPS中每个应用程序的{tt14}$,按顺序排列- 因此,在ICANHAZ_DIRS中找到的模板优先于 应用

基本原理

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

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

享受吧!

更改

0.2.1(2012.01.09)

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

0.2.0(2011.06.26)

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

0.1.0(2011.06.22)

  • 初次发布。

待办事项

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

推荐PyPI第三方库


热门话题
ws-consumer服务地址中的java动态属性   java如何比较整数列表,然后按升序排序?   javascript我正在使用java脚本调用一个函数,但它没有调用代码下面的方法,也没有调用secretitnames()函数   在文本窗格中多次使用Java insertIcon图标   JavaMSAL安卓。AuthenticationActivity完成,但用于身份验证请求的线程池线程仍处于等待状态   if语句中的java多范围比较   java toString()表示输出   java如何在jcstrest测试中生成指令重新排序   java我怎样才能运行它?   web应用程序中使用Hibernate和Spring的java问题   如何将字符串数据写入Java文本文件   如何在java命令提示符下运行已签名的jar文件?   java从我的菜单调用RCP应用程序   java如何等待Canvas/GraphicsContext完成任务,然后再继续执行代码块?