如何使用jinja2插入当前日期

时间:2019-01-07 10:48:48

标签: jinja2

我是首次使用Jinja2,并尝试将当前日期插入到文档中作为底线,以告诉用户何时生成文档。

我当前的解决方案是

Produced on {{ utils.today|date('%x') }} 没有错误消息,但是什么也没产生。

解决方案只需要是Jinja2,因为我没有运行python进程-使用Ginger(Haskell程序)来处理模板。

2 个答案:

答案 0 :(得分:0)

Context Processors可用于在呈现值之前将值注入模板。

在app.py中:

import datetime

@app.context_processor
def inject_today_date():
    return {'today_date': datetime.date.today()}

并将其添加到html文件中:

<p>{{today_date}}</p>

输出:2019-01-07

答案 1 :(得分:0)

Jinja2不支持插入日期。但是,您可以在用于渲染模板的任何库中轻松准备日期,并将值传递给渲染函数。

在Python中使用jinja2:

import datetime
date = datetime.date.today()
template = Template('Produced on {{ date }}')
template.render(date=date)

如果使用的是Ginger,您将拥有相同的模板,只需确保在Haskell中创建日期并使用该值呈现模板即可。

您还可以编写或安装jinja2扩展名,该扩展名将使用于处理日期的实用程序在模板中可用。

例如,安装jinja2-time [1]后,您的模板将如下所示:

Produced on {% now 'local' %}

[1]:未经测试的代码