您好,登錄后才能下訂單哦!
基本概念:
模板其實是一個包含響應文本的文件,其中用占位符(變量)表示動態(tài)部分,告訴模板引擎其具體的值需要從使用的數據中獲取
使用真實值替換變量,再返回最終得到的字符串,這個過程稱為“渲染”
Flask是使用 Jinja2 這個模板引擎來渲染模板'
渲染模版函數
Flask提供的 render_template 函數封裝了該模板引擎
render_template 函數的第一個參數是模板的文件名,后面的參數都是鍵值對,表示模板中變量對應的真實值。
基本語法
{{}} 來表示變量名,這種 {{}} 語法叫做變量代碼塊
<h2>{{ post.title }}</h2>
Jinja2 模版中的變量代碼塊可以是任意 Python 類型或者對象,只要它能夠被 Python 的 str() 方法轉換為一個字符串就可以,比如,可以通過下面的方式顯示一個字典或者列表中的某個元素:
{{your_dict['key']}} {{your_list[0]}}
用 {%%} 定義的控制代碼塊,可以實現(xiàn)一些語言層次的功能,比如循環(huán)或者if語句
{% if user %} {{ user }} {% else %} hello!<ul> {% for index in indexs %} <li> {{ index }} </li> {% endfor %}</ul>
使用 {# #} 進行注釋,注釋的內容不會在html中被渲染出來
{# {{ name }} #}
過濾器的本質就是函數。有時候我們不僅僅只是需要輸出變量的值,我們還需要修改變量的顯示,甚至格式化、運算等等,而在模板中是不能直接調用 Python 中的某些方法,那么這就用到了過濾器。
使用方式:
過濾器的使用方式為:變量名 | 過濾器。
{{variable | filter_name(*args)}}
如果沒有任何參數傳給過濾器,則可以把括號省略掉
{{variable | filter_name}}
如:``,這個過濾器的作用:把變量variable 的值的首字母轉換為大寫,其他字母轉換為小寫
在 jinja2 中,過濾器是可以支持鏈式調用的,示例如下:
{{ "hello world" | reverse | upper }}
safe:禁用轉義
<p>{{ '<em>hello</em>' | safe }}</p>
capitalize:把變量值的首字母轉成大寫,其余字母轉小寫
<p>{{ 'hello' | capitalize }}</p>
lower:把值轉成小寫
<p>{{ 'HELLO' | lower }}</p>
upper:把值轉成大寫
<p>{{ 'hello' | upper }}</p>
title:把值中的每個單詞的首字母都轉成大寫
<p>{{ 'hello' | title }}</p>
reverse:字符串反轉
<p>{{ 'olleh' | reverse }}</p>
format:格式化輸出
<p>{{ '%s is %d' | format('name',17) }}</p>
striptags:渲染之前把值中所有的HTML標簽都刪掉
<p>{{ '<em>hello</em>' | striptags }}</p>
truncate: 字符串截斷
<p>{{ 'hello every one' | truncate(9)}}</p>
first:取第一個元素
<p>{{ [1,2,3,4,5,6] | first }}</p>
last:取最后一個元素
<p>{{ [1,2,3,4,5,6] | last }}</p>
length:獲取列表長度
<p>{{ [1,2,3,4,5,6] | length }}</p>
sum:列表求和
<p>{{ [1,2,3,4,5,6] | sum }}</p>
sort:列表排序
<p>{{ [6,2,3,1,5,4] | sort }}</p>
{% filter upper %} #一大堆文字# {% endfilter %}
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。