flask中jinjia2模板引擎使用详解2

接上文

注释的使用

在jinjia2模板中,使用{# #}进行代码注释,如下所示

运行后发现,注释不会被render出来

去掉空行

两种方法可以去掉jinjia2模板中的空白行,一是设置jinjia2的环境变量,如下

app.jinja_env.trim_blocks= True  app.jinja_env.lstrip_blocks = True  

另一种是通过在模板的逻辑块中添加-号

{% if name -%}    <h4>Hello {{ name | upper }}!</h4>      <h4>name is number? {% if name is number %}true{% else  %}false{% endif %}</h4>    {# 这是一大堆注释 #}  {%- else -%}    <h4>Hello World!</h4>  {% endif %}  

-在前面说明要除去前面的空行,在后面除去后面的空行,两边都加前后都去掉空白行。

注:-是标签的一部分,所以中间不要有空格

下面这种表达是不合法的:

{% - if xxx %}  

转义

想要在模板中输出原生jinjia2语法,需要进行转义,转义有两种方法

一种是通过变量表达式直接输出语言关键字,比如

{{ "{{ 通过转义输出变量表达式 }}" }}  {{ "{%  通过转义输出逻辑表达式 %}" }}  

转出效果:

另一种是通过raw关键字进行大块转义

{% raw %}      <ul>      {% for item in seq %}          <li>{{ item }}</li>      {% endfor %}      </ul>  {% endraw %}  

运行效果:

行语句

行语句就是把一行当成是jinjia2的语句行,设置一下jinjia2的line_statement_prefix变量即可实现。比如设置为“#”
app.jinja_env.line_statement_prefix=”#”
同时在模板中加入行语句

# if True    >行语句输出>    # endif  

运行效果:

行注释

通过设置line_comment_prefix可以实现行注释,步骤跟行语句一样,比如,我们设置:

app.jinja_env.line_comment_prefix = "$"  

在模板中加入注释

$行注释,不输出  

运行后,查看源码,发现注释没有被输出

关注“挨踢学霸”微信公众号,回复“jinjia2-2“ 获取本文源代码

原文出处:zhihu -> https://zhuanlan.zhihu.com/p/34222654

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。