跳转到主要内容

一个使Jinja2在Django中整洁集成的包。

项目描述

Djinja试图 将Jinja2集成到Django中。目标是完全替换Django的模板系统,包括 管理

目前,以下模板模块已被编写并工作

  • Django管理

  • Django调试工具栏

在不久的将来,您可以将 Django模板语法转换为Jinja2语法,这不是很酷吗?

如果您有想法,请告诉我们。

安装

  1. djinja目录添加到您的Python路径。

  2. 将以下模板加载器( settings.py 文件中的 模板加载器 顶部)添加到您的项目文件中

    'djinja.template.loaders.Loader',

    将模板加载器绑定到模板允许Djinja自动管理所有模板(包括Django模板)

    注意:如果您在尝试访问Django管理时没有安装djinja.contrib.admin,您将遇到错误,这是由于Django管理模板尚未针对Jinja2进行适配。

  3. 这就完成了! ;)

重要:您必须将网站模板适配到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',
    ...
)

待办事项和错误

查看:http://github.com/syrusakbary/djinja/issues

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分发

Djinja-0.7.tar.gz (36.3 kB 查看散列

上传时间:

支持者