Python Jinja2中针对语句的If语句
我有一个在GAE托管的网站,在我的Jinja2模板中,我有一个FOR语句中的IF语句 我已通过以下方式启用我的jinja2.ext.loopcontrols循环控制:Python Jinja2中针对语句的If语句,python,google-app-engine,if-statement,jinja2,Python,Google App Engine,If Statement,Jinja2,我有一个在GAE托管的网站,在我的Jinja2模板中,我有一个FOR语句中的IF语句 我已通过以下方式启用我的jinja2.ext.loopcontrols循环控制: template_dir = os.path.dirname(__file__) ENV = jinja2.Environment(loader=jinja2.FileSystemLoader(template_dir), autoescape=True
template_dir = os.path.dirname(__file__)
ENV = jinja2.Environment(loader=jinja2.FileSystemLoader(template_dir),
autoescape=True,
extensions=['jinja2.ext.autoescape',
'jinja2.ext.loopcontrols'])
我的模板如下所示:
{% for i in data %}
(% if i.date_posted is defined %)
{{ i.date_posted.strftime('%d %b %Y') }}
{% else %}
No
{% endif %}
{% endfor %}
我不断得到错误:
TemplateSyntaxError:遇到未知标记“endif”。Jinja正在寻找以下标签:“endfor”。需要关闭的最里面的块是“for”
您没有正确声明您的
if
标记:
(% if i.date_posted is defined %)
注意括号而不是大括号;应该这样写:
{% if i.date_posted is defined %}
您没有正确声明您的
if
标记:
(% if i.date_posted is defined %)
注意括号而不是大括号;应该这样写:
{% if i.date_posted is defined %}
啊,伙计!所有这些都是为了这么简单的事情。也许是我买新眼镜的时候了。:)谢谢@贾斯珀·约翰斯:你用什么编辑器?我使用的是Textmate和Sublime文本,这会使差异更加明显。我使用的是Aptana Studio 3,Sublime文本是免费的吗?我只是看了一下,到目前为止我非常喜欢它。谢谢你的建议@JasperJohns:崇高的文本可以自由评估;当您保存文件以购买许可证继续使用时,它会不时地困扰您。Sublime Text 3目前处于测试版,在正式发布之前是免费的。@JasperJohns:Aptana Studio 3显然支持Django模板;Jinja2在很大程度上基于相同的语法,您可以尝试看看Django模板语法highlighter是否有帮助!所有这些都是为了这么简单的事情。也许是我买新眼镜的时候了。:)谢谢@贾斯珀·约翰斯:你用什么编辑器?我使用的是Textmate和Sublime文本,这会使差异更加明显。我使用的是Aptana Studio 3,Sublime文本是免费的吗?我只是看了一下,到目前为止我非常喜欢它。谢谢你的建议@JasperJohns:崇高的文本可以自由评估;当您保存文件以购买许可证继续使用时,它会不时地困扰您。Sublime Text 3目前处于测试版,在正式发布之前是免费的。@JasperJohns:Aptana Studio 3显然支持Django模板;Jinja2主要基于相同的语法,您可以尝试看看Django模板语法highlighter是否有帮助。