接上文 註釋的使用 在jinjia2模板中,使用{# #}進行代碼註釋,如下所示 運行後發現,註釋不會被render出來 去掉空行 兩種方法可以去掉jinjia2模板中的空白行,一是設置jinjia2的環境變數,如下 app.jinja_env.trim_blocks = True app.jinj ...
接上文
註釋的使用
在jinjia2模板中,使用{# #}進行代碼註釋,如下所示
運行後發現,註釋不會被render出來
去掉空行
兩種方法可以去掉jinjia2模板中的空白行,一是設置jinjia2的環境變數,如下
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
另一種是通過在模板的邏輯塊中添加-號
{% if name -%} <h1>Hello {{ name | upper }}!</h1> <h1>name is number? {% if name is number %}true{% else %}false{% endif %}</h1> {# 這是一大堆註釋 #} {%- else -%} <h1>Hello World!</h1> {% 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
<p>行語句輸出</p>
# endif
運行效果:
行註釋
通過設置line_comment_prefix可以實現行註釋,步驟跟行語句一樣,比如,我們設置:
app.jinja_env.line_comment_prefix = "$"
在模板中加入註釋
$行註釋,不輸出
運行後,查看源碼,發現註釋沒有被輸出
關註“挨踢學霸”微信公眾號,回覆“jinjia2-2“ 獲取本文源代碼