一个使Jinja2在Django中整洁集成的包。
项目描述
Djinja试图 将Jinja2集成到Django中。目标是完全替换Django的模板系统,包括 管理。
目前,以下模板模块已被编写并工作
Django管理
Django调试工具栏
在不久的将来,您可以将 Django模板语法转换为Jinja2语法,这不是很酷吗?
如果您有想法,请告诉我们。
安装
将djinja目录添加到您的Python路径。
将以下模板加载器(在 settings.py 文件中的 模板加载器 顶部)添加到您的项目文件中
'djinja.template.loaders.Loader',
将模板加载器绑定到模板允许Djinja自动管理所有模板(包括Django模板)
注意:如果您在尝试访问Django管理时没有安装djinja.contrib.admin,您将遇到错误,这是由于Django管理模板尚未针对Jinja2进行适配。
这就完成了! ;)
重要:您必须将网站模板适配到Jinja2,否则在渲染时将遇到错误(直到Djinja转换器准备好)。
自定义过滤器扩展
Djinja使用与Django相同的templatetag库方法,这意味着您的应用程序有一个templatetags目录,其中的每个模块代表一个“模板库”,提供新的过滤器和标签。
在 djinja.template.Library 中,可以使用自定义的 Library 类来注册 Jinja 特定的组件。
Djinja 可以自动使您现有的 Django 过滤器在 Jinja 中可用,但不能使用自定义标签 - 您需要手动将其重写为 Jinja 扩展。
Jinja 启用模板库的示例
from djinja import template register = template.Library() register.filter(plenk, 'plenk') # Filter function register.extension(FooExtension) # Jinja version of the tag register.tag(my_function_name) # A global function/object register.set(a='hello') # A context variable (named a)
您还可以通过 settings.py 定义额外的扩展、过滤器、测试和全局变量。
JINJA2_FILTERS = ( 'path.to.myfilter', ) JINJA2_EXTENSIONS = ( 'jinja2.ext.do', )
HAML
如果已安装 HamlPy - https://github.com/jessemiller/HamlPy,Djinja 可以渲染 HAML 页面。只需将 .haml 扩展添加到模板,并在设置中的 JINJA2_EXTENSIONS 变量中添加 'djinja.template.extensions.haml' 即可。
JINJA2_EXTENSIONS = ( ... 'djinja.template.extensions.haml', ... )
HAML 模板也可以包含、扩展等 HTML 模板,反之亦然。
管理
要安装 Django 管理员的 Jinja2 模板,只需在 settings.py 中的 INSTALLED_APPS 中将 'djinja.contrib.admin', 添加到 'django.contrib.admin' 之前即可。
示例配置
INSTALLED_APPS = ( ... 'djinja.contrib.admin', 'django.contrib.admin', ... )
基准测试
运行测试
ab -n100 http://localhost/admin/
Django 中
每秒请求数:67.93 [#/sec](平均) 每个请求时间:14.721 [ms](平均)
使用 Jinja2(Djinja)
每秒请求数:202.16 [#/sec](平均) 每个请求时间:4.947 [ms](平均)
使用 Jinja2 而不是 Django 模板在管理中提高了 3 倍的性能
Django调试工具栏
要安装 Django Debug Toolbar 的 Jinja2 模板,只需在 settings.py 中的 INSTALLED_APPS 中将 'djinja.contrib.debug_toolbar', 添加到 'debug_toolbar' 之前即可。
示例配置
INSTALLED_APPS = ( ... 'djinja.contrib.debug_toolbar', 'debug_toolbar', ... )
待办事项和错误
项目详情
Djinja-0.7.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 97b5725b67da9f48ae70fc5bc91b2ce4b02faa5816f76455234d287ec094502f |
|
MD5 | f92a755157010b5862ba523f772cf888 |
|
BLAKE2b-256 | 6991d26d7ab656dc077cc8ea90424afd095b188f63950d0451121042fad6a03a |