模板引擎
說明:模板文件就是按照一定的規則書寫的展示效果的HTML文件 模板引擎就是負責按照指定規則進行替換的工具
模板引擎選擇jinja2
一、渲染模板的方法
1、將渲染的模板進行返回
render_template()
2、渲染字符串返回
render_templates_string()
實例
@app.route('/')def index(): #將模板內容響應給用戶 return render_template('index.html') #渲染一內容響應給用戶 return render_template_string('<h1 style="color:green;font-size:18px;">原諒色</h1>')
二、模板的語法
模板中只存在倆種語法
1、變量
{{ var }}
#像模板文件中傳參return render_template('index.html',title='首惡'){{ title }}
2、標簽
{% 標簽名 %}
注意:
在模板中使用字典中的鍵 需要像使用對象得方式來調用
{{data.key}}
如果在模板中給定的變量不存在 則插入的是空字符串 不會報錯
三、過濾器
過濾器使用管道符 | 來使用的
1、{{ var|abs }} 返回一個數值的絕對值
2、default 設置默認值
只有當給定的變量不存在時 則執行默認值
當設置default的boolean的時候 會執行默認值
<li>{{ data.bool|default('我是默認值',boolean=True) }}</li>
3、first: 取出變量中的第一個字符
4、last: 取出變量中的最后一個字符
5、format: 字符的格式化
<li>{{ '我叫%s 我今年%d歲了 我的存款為 %.2f'|format('羅鐵漢',38,23) }}</li>
6、length: 返回變量值的長度
7、join: 拼接成字符串
<li>{{ [1,2,3,4]|join('') }}</li><li>{{ [1,2,3,4]|join('x') }}</li>
8、safe: 不轉義標簽 原樣顯示
9、lower 轉為小寫
10、upper 轉為大寫
11、replace 替換
<li>{{ data.string|replace('a','x') }}</li>
12、striptages 去除HTML標簽
{{ data.html|striptags }}
四、標簽
語法格式 :{% 標簽名 %}
(1) if
實例
{% if data.bool %} <li>{{ data.bool }}值為真</li>{% elif True %} <li>{{ True }}職位真</li>{% else %} <li>{{ data.bool }}值為假</li>{% endif %}
(2) for 循環
實例
{% for i in data.xxxx %}{# 錯誤的迭代方法TypeError: 'bool' object is not iterable #}{# {% for i in data.bool %}#} <li>{{ i }}</li>{% else %} <li>當迭代的變量不存在時 則執行else</li>{% endfor %}
新聞熱點
疑難解答