我尝试使用Jinja2对模板化的datetime
值执行算术运算。Perform arithmetic operation in Jinja2,我看到Jinja2支持对模板类型执行算术运算。
我想把它扩展到datetime
。
我试着这么做:
from jinja2 import Template
import datetime
template = Template("Date: {{ currentDate +2 }}")
template.render(currentDate=datetime.datetime.today())
但它抛出以下内容:
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'int'
我试着想出一个解决方案,我可以分配一个函数,当调用它时,返回自纪元以来的天数,但我仍然需要能够将该值表示为有效日期。
如何使用Jinja2实现这一点?
1条答案
按热度按时间vojdkbi01#
由于您的目标是将两天添加到另一个日期,因此可以将
datetime
模块传递给模板,然后使用其timedelta()
方法:给定:
这将产生:
您甚至可以将代码进一步简化为
但是请记住,模板系统是用来显示的,您应该避免在模板中执行过多的逻辑操作。
因此,您必须在模板中可接受的逻辑量和不可接受的逻辑量之间划出一条界线。
例如,在MVC中,您可能更愿意执行以下操作: