1. 程式人生 > >flask中jinjia2模板使用詳解2

flask中jinjia2模板使用詳解2

編程語言 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