用于在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

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

推荐PyPI第三方库


热门话题
数组JAVA登录页面;如何使用阅读记事本两次?   在堆分析期间提供未知类名的java jprofiler   SpringJava反应器Mono<Tuple2>。zipWith(Mono<>)应返回Mono<Tuple3>   java如何在图形对象上绘制填充椭圆?   java JavaMail支持通过CRL或OCSP进行证书撤销检查吗?   如何使用自制cask升级到最新版本的java JDK?   java为什么从/manager重新启动应用程序会导致大量“此web应用程序实例已停止”警告。为什么?   图形如何在Java中绘制文本上方的线   java如何使Tomcat 7应用程序向后兼容?   java struts中的差异路径类型是什么。xml?   JavaSpringBootJPA表层次结构   java ChangeListener功能,用于使用时间延迟/或其他解决方案检查键入的值   java如何使Libgdx粒子不受背景颜色的影响?   c#无法读取JSON:无法构造java实例。util。从字符串值开始的日期