首页 文章

Jinja模板中是否允许使用内联代码?

提问于
浏览
14

我是using Jinja在我的网站上,我喜欢它 .

我've come across a simple need. How to display today'约会? Is there a way to inline some Python code in a Jinja template?

import datetime
now = datetime.datetime.utcnow()
print now.strftime("%Y-%m-%d %H:%M")

This article says no,但建议使用宏还是过滤器?

真?我们必须诉诸于所有这一切吗?好的,在这种情况下会是什么样子?

2 回答

  • 3

    不,没有办法将Python内联到Jinja . 但是,您可以通过扩展模板引擎的Environment或所有模板可用的global namespace来添加Jinja所知的构造 . 或者,您可以添加一个过滤器,让您设置日期时间对象的格式 .

    Flask将Jinja2 Environment存储在app.jinja_env上 . 您可以通过直接添加到此词典或使用@app.context_processor装饰器将新上下文注入环境 .

    无论您选择哪种方式,都应在设置应用程序时完成,然后才能提供任何请求 . (有关如何设置过滤器的一些good examples,请参阅网站的片段部分 - the docs包含添加到全局变量的一个很好的示例) .

  • 11

    您可以添加到global variables,可以从Jinja模板访问 . 您可以将自己的函数定义放在那里,无论您需要什么 .

相关问题