在Jinja模板化的Python脚本中生成今天的日期

时间:2019-12-04 19:32:36

标签: python-3.x date jinja2

我有一个脚本,我们称它为generator.py,该脚本从一个Jinja模板(templated.py)渲染一个Python程序(template.jinja)。

我希望templated.py始终具有生成器运行当天的值。

例如,假设template.jinja是:

the_date = {{ date_param }}

print('Script was generated on {}'.format(the_date)

run_function_that_requires_date_as_argument(the_date)

如果生成器类似:

d = datetime.today()
templated_source = template.render(date_param=d)

save_templated_script_to_file(script_source=templated_source, filename='templated.py')

然后我得到类似的东西:

the_date = 2019-12-04 11:17:05.892525

print('Script was generated on {}'.format(the_date)

run_function_that_requires_date_as_argument(the_date)

哪个不是有效的Python。如果我用d='datetime.today()'设置参数,则会得到:

the_date = datetime.today()

print('Script was generated on {}'.format(the_date)

run_function_that_requires_date_as_argument(the_date)

这是有效的Python,但功能无效-它会打印模板化脚本的运行日期,而不是其生成日期。

如何将今天的日期传递给Jinja渲染器,使其保留为Python对象,而不是转换为字符串?

0 个答案:

没有答案