flask中jinjia2模板使用詳解2
阿新 • • 發佈:2018-03-05
編程語言 Python 接上文
註釋的使用
在jinjia2模板中,使用{# #}進行代碼註釋,如下所示
運行後發現,註釋不會被render出來
去掉空行
兩種方法可以去掉jinjia2模板中的空白行,一是設置jinjia2的環境變量,如下
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
另一種是通過在模板的邏輯塊中添加-號
{% -%} <>Hello {{ | }}!</> <>name is number? {% is %}true{% %}false{% %}</> {%- -%} <>Hello World!</> {% %}
-在前面說明要除去前面的空行,在後面除去後面的空行,兩邊都加前後都去掉空白行。
註:-是標簽的一部分,所以中間不要有空格
下面這種表達是不合法的:
{% - if xxx %}
轉義
想要在模板中輸出原生jinjia2語法,需要進行轉義,轉義有兩種方法
一種是通過變量表達式直接輸出語言關鍵字,比如
{{ }} {{ }}
轉出效果:
另一種是通過raw關鍵字進行大塊轉義
{% raw %} <> {% for item in seq %} <>{{ item }}</> {% endfor %} </> {% endraw %}
運行效果:
行語句
行語句就是把一行當成是jinjia2的語句行,設置一下jinjia2的line_statement_prefix變量即可實現。比如設置為“#”
app.jinja_env.line_statement_prefix="#"
同時在模板中加入行語句
# if True <>行語句輸出</> # endif
運行效果:
行註釋
通過設置line_comment_prefix可以實現行註釋,步驟跟行語句一樣,比如,我們設置:
app.jinja_env.line_comment_prefix = "$"
在模板中加入註釋
$行註釋,不輸出
運行後,查看源碼,發現註釋沒有被輸出
flask中jinjia2模板使用詳解2