用于在django中使用jinja2模板的适配器。
jingo的Python项目详细描述
…_京哥:
…模块::jingo
==
jingo
==
…注意:此文档可能已过期。最新的文档可以在"阅读文档"上找到,https://jingo.read the docs.org/en/latest/>;` ` `.
----
django在版本1.8中添加了支持对于多个模板引擎,并提供了一个jinja2后端。django-jinja廑项目利用这一点来支持jinja2,
而jingo则不支持。
**建议在新项目中使用django jinja。**jingo>;=0.8支持django
1.8,但它不会在0.9版之后进行维护,**也不会**支持django
1.9或更高版本。如果您已经在使用jigo,并且还没有准备好进行"开关",jigo现在应该继续工作,尽管不是没有一些努力。
0.9将是jigo的最后一个版本,除非新的维护人员带来了新的方向。
通过"Jinja2扩展"提供,以简化从Jingo的迁移。整个"jigo/ext.py"文件可以复制到另一个项目中,或者引用为"jigo.ext.jingoextension"。使用这种方式,jingo可以很好地与django jinja(理论上django的内置jinja2后端)配合使用。_ django-jinja:https://github.com/niwinz/django-jinja
。_切换:http://bluesock.org/~willkg/blog/mozilla/input_django_1_8_upgrade.html;从jingo切换到django jinja
。_ Jinja2:http://jinja.pocoo.org/2/
。_ 0.9:https://https://pypi.python.org/pypi/jingo/0.9.0
。_ Jinja2扩展名:https://github.com/jbalogh/jingo/blob/master/jingo/ext.py
……_用法:
usage
---
(用户ID=(1,2,3,4))
返回呈现(请求,'users/search.html',上下文)
注意:
django提供的任何呈现模板的方法也起作用。
_设置:
settings
——
tories.loader,
)
这里的ion
这将考虑包含子字符串`.jinja2` to
的每个模板文件都是jinja2文件(除非它在模块中明确排除,请参见下文)。
ingo_exclude_apps=('debug_toolbar',)
如果模板路径以"debug_toolbar"开头,jinja加载程序将引发一个
"templatedoesnotexist"异常。这将导致django转到"template\u loaders"中的下一个加载程序以查找模板-在本例中,
``django.template.loaders.filesystem.loader`.
注意:
从技术上讲,我们关注的是模板路径,而不是应用程序。通常这些都是
相同的,但在某些情况下,例如默认设置中的"注册"
是一个管理模板,而不是。
,
上下文过程或,
)
…版本更改:0.6.2
添加了"上下文处理器"应用程序。
如果要配置jinja环境,请使用
"settings.py"中的"jinja配置"。它可以是dict或返回dict的函数。::
>或::
def jinja-config():
返回{'theu-answer':41+1}
如果在配置中设置了"extensions"键,则必须**
包含"jingo.ext.jingoextension"才能获取jingo的内置模板
辅助对象(见下文)。
模板辅助对象注意:
为了将来的校对,请考虑编写自定义过滤器和
函数作为jinja扩展。请参见"jigo/ext.py"获取一个简单的示例。
jinja鼓励您在模板环境中添加函数和过滤器,而不是模板标记。在"jigo"中,我们称这些助手。当初始化jinja环境时,``jingo``将尝试打开``installed`apps``中每个应用程序的``helpers.py`
文件。提供了两个装饰器以简化环境扩展:
函数::jingo.register.filter
函数::jingo.register.function
将修饰后的函数添加到jinja的全局命名空间中。
请参见"jingo/ext.py"了解它们的定义。
template environment
---------
创建一个jinja"environment"用于所有模板。如果你需要和"环境"一起工作,可以通过"jingo.get-env()`````jingo.get-env()``````````````````````来获得这一功能。
>既然我们都喜欢L10N,让我们来看看Jinja模板中的情况:
<简单的方法是使用熟悉的熟悉的熟悉的方法,简单的方法是使用熟悉的熟悉的熟悉的熟悉的熟悉的方法。海底re和string在`{{}``
胡子块中。`` f``是下面记录的插值滤波器。如果我知道怎么做的话,sphinx就可以创建一个链接。另一个方法使用jinja的trans标记:
{%trans user=review.user用户链接,date=review.user用户链接,date=review.datetime%}
由{{{{{user}{{{{date}}{{{{date}}}
{%endtrans%}
如果你有很多文本或者想注入一些变量,trans当你有很多文本或者想注入一些变量时,trans很好
>是的直接。这两种方法都是有用的,选择一种能让你快乐的方法。
forms
----
django根据自己的规则标记其表单html"安全",jinja2不认识这些规则。
这个monkeypatches django支持jinja2
模板中使用的"html"协议。`` form```、``boundfield`、``errorlist``和其他通过```unicode``方法呈现html的form对象都用`````html`
扩展,这样就可以在jinja2模板中呈现它们,而无需添加```safe``。
调用``patch()``函数来执行修补程序。在导入"django.forms"之前,必须调用
,条件转义补丁才能正常工作。根urlconf是调用"patch()"的推荐位置。
用法::
jigo.monkey.patch()
testing
----
若要运行测试套件,需要首先定义"django设置"模块::
$export django\u settings="fake\u settings"
$noests
或只运行::
在所有受支持的python和django版本上进行测试:
$pip install tox
$tox
…模块::jingo
==
jingo
==
…注意:此文档可能已过期。最新的文档可以在"阅读文档"上找到,https://jingo.read the docs.org/en/latest/>;` ` `.
django在版本1.8中添加了支持对于多个模板引擎,并提供了一个jinja2后端。django-jinja廑项目利用这一点来支持jinja2,
而jingo则不支持。
**建议在新项目中使用django jinja。**jingo>;=0.8支持django
1.8,但它不会在0.9版之后进行维护,**也不会**支持django
1.9或更高版本。如果您已经在使用jigo,并且还没有准备好进行"开关",jigo现在应该继续工作,尽管不是没有一些努力。
0.9将是jigo的最后一个版本,除非新的维护人员带来了新的方向。
通过"Jinja2扩展"提供,以简化从Jingo的迁移。整个"jigo/ext.py"文件可以复制到另一个项目中,或者引用为"jigo.ext.jingoextension"。使用这种方式,jingo可以很好地与django jinja(理论上django的内置jinja2后端)配合使用。_ django-jinja:https://github.com/niwinz/django-jinja
。_切换:http://bluesock.org/~willkg/blog/mozilla/input_django_1_8_upgrade.html;从jingo切换到django jinja
。_ Jinja2:http://jinja.pocoo.org/2/
。_ 0.9:https://https://pypi.python.org/pypi/jingo/0.9.0
。_ Jinja2扩展名:https://github.com/jbalogh/jingo/blob/master/jingo/ext.py
……_用法:
usage
---
(用户ID=(1,2,3,4))
返回呈现(请求,'users/search.html',上下文)
注意:
_设置:
settings
——
tories.loader,
)
这里的ion
这将考虑包含子字符串`.jinja2` to
的每个模板文件都是jinja2文件(除非它在模块中明确排除,请参见下文)。
ingo_exclude_apps=('debug_toolbar',)
如果模板路径以"debug_toolbar"开头,jinja加载程序将引发一个
"templatedoesnotexist"异常。这将导致django转到"template\u loaders"中的下一个加载程序以查找模板-在本例中,
``django.template.loaders.filesystem.loader`.
注意:
从技术上讲,我们关注的是模板路径,而不是应用程序。通常这些都是
相同的,但在某些情况下,例如默认设置中的"注册"
是一个管理模板,而不是。
,
上下文过程或,
)
…版本更改:0.6.2
添加了"上下文处理器"应用程序。
如果要配置jinja环境,请使用
"settings.py"中的"jinja配置"。它可以是dict或返回dict的函数。::
>或::
def jinja-config():
返回{'theu-answer':41+1}
如果在配置中设置了"extensions"键,则必须**
包含"jingo.ext.jingoextension"才能获取jingo的内置模板
辅助对象(见下文)。
模板辅助对象注意:
为了将来的校对,请考虑编写自定义过滤器和
函数作为jinja扩展。请参见"jigo/ext.py"获取一个简单的示例。
jinja鼓励您在模板环境中添加函数和过滤器,而不是模板标记。在"jigo"中,我们称这些助手。当初始化jinja环境时,``jingo``将尝试打开``installed`apps``中每个应用程序的``helpers.py`
文件。提供了两个装饰器以简化环境扩展:
函数::jingo.register.filter
函数::jingo.register.function
将修饰后的函数添加到jinja的全局命名空间中。
请参见"jingo/ext.py"了解它们的定义。
template environment
---------
创建一个jinja"environment"用于所有模板。如果你需要和"环境"一起工作,可以通过"jingo.get-env()`````jingo.get-env()``````````````````````来获得这一功能。
>既然我们都喜欢L10N,让我们来看看Jinja模板中的情况:
<简单的方法是使用熟悉的熟悉的熟悉的方法,简单的方法是使用熟悉的熟悉的熟悉的熟悉的熟悉的方法。海底re和string在`{{}``
胡子块中。`` f``是下面记录的插值滤波器。如果我知道怎么做的话,sphinx就可以创建一个链接。另一个方法使用jinja的trans标记:
{%trans user=review.user用户链接,date=review.user用户链接,date=review.datetime%}
由{{{{{user}{{{{date}}{{{{date}}}
{%endtrans%}
如果你有很多文本或者想注入一些变量,trans当你有很多文本或者想注入一些变量时,trans很好
>是的直接。这两种方法都是有用的,选择一种能让你快乐的方法。
forms
----
django根据自己的规则标记其表单html"安全",jinja2不认识这些规则。
这个monkeypatches django支持jinja2
模板中使用的"html"协议。`` form```、``boundfield`、``errorlist``和其他通过```unicode``方法呈现html的form对象都用`````html`
扩展,这样就可以在jinja2模板中呈现它们,而无需添加```safe``。
调用``patch()``函数来执行修补程序。在导入"django.forms"之前,必须调用
,条件转义补丁才能正常工作。根urlconf是调用"patch()"的推荐位置。
用法::
testing
----
若要运行测试套件,需要首先定义"django设置"模块::
$export django\u settings="fake\u settings"
$noests
或只运行::
在所有受支持的python和django版本上进行测试:
$pip install tox
$tox