Flask mysql 模版传参_Flask渲染Jinja2模板和传参
### Flask渲染Jinja2模板和傳參:
1. 如何渲染模板:
* 模板放在`templates`文件夾下
* 從`flask`中導(dǎo)入`render_template`函數(shù)。
* 在視圖函數(shù)中,使用`render_template`函數(shù),渲染模板。注意:只需要填寫模板的名字,不需要填寫`templates`這個文件夾的路徑。
2. 模板傳參:
* 如果只有一個或者少量參數(shù),直接在`render_template`函數(shù)中添加關(guān)鍵字參數(shù)就可以了。
* 如果有多個參數(shù)的時候,那么可以先把所有的參數(shù)放在字典中,然后在`render_template`中,
使用兩個星號,把字典轉(zhuǎn)換成關(guān)鍵參數(shù)傳遞進(jìn)去,這樣的代碼更方便管理和使用。
3. 在模板中,如果要使用一個變量,語法是:`{{params}}`
4. 訪問模型中的屬性或者是字典,可以通過`{{params.property}}`的形式,或者是使用`{{params['age']}}`.
### 過濾器:
1. 介紹和語法:
* 介紹:過濾器可以處理變量,把原始的變量經(jīng)過處理后再展示出來。作用的對象是變量。
* 語法:
```
{{ avatar|default('xxx') }}
```
2. default過濾器:如果當(dāng)前變量不存在,這時候可以指定默認(rèn)值。
3. length過濾器:求列表或者字符串或者字典或者元組的長度。
4. 常用的過濾器:
abs(value):返回一個數(shù)值的絕對值。示例:-1|abs
default(value,default_value,boolean=false):如果當(dāng)前變量沒有值,則會使用參數(shù)中的值來代替。示例:name|default('xiaotuo')——如果name不存在,則會使用xiaotuo來替代。boolean=False默認(rèn)是在只有這個變量為undefined的時候才會使用default中的值,如果想使用python的形式判斷是否為false,則可以傳遞boolean=true。也可以使用or來替換。
escape(value)或e:轉(zhuǎn)義字符,會將等符號轉(zhuǎn)義成HTML中的符號。示例:content|escape或content|e。
first(value):返回一個序列的第一個元素。示例:names|first
format(value,*arags,**kwargs):格式化字符串。比如:
{{ "%s" - "%s"|format('Hello?',"Foo!") }}
將輸出:Helloo? - Foo!
last(value):返回一個序列的最后一個元素。示例:names|last。
length(value):返回一個序列或者字典的長度。示例:names|length。
join(value,d=u''):將一個序列用d這個參數(shù)的值拼接成字符串。
safe(value):如果開啟了全局轉(zhuǎn)義,那么safe過濾器會將變量關(guān)掉轉(zhuǎn)義。示例:content_html|safe。
int(value):將值轉(zhuǎn)換為int類型。
float(value):將值轉(zhuǎn)換為float類型。
lower(value):將字符串轉(zhuǎn)換為小寫。
upper(value):將字符串轉(zhuǎn)換為小寫。
replace(value,old,new): 替換將old替換為new的字符串。
truncate(value,length=255,killwords=False):截取length長度的字符串。
striptags(value):刪除字符串中所有的HTML標(biāo)簽,如果出現(xiàn)多個空格,將替換成一個空格。
trim:截取字符串前面和后面的空白字符。
string(value):將變量轉(zhuǎn)換成字符串。
wordcount(s):計算一個長字符串中單詞的個數(shù)。
### if判斷:
1. 語法:
```
{% if xxx %}
{% else %}
{% endif %}
```
2. if的使用,可以和python中相差無幾。
### for循環(huán)遍歷列表和字典:
1. 字典的遍歷,語法和`python`一樣,可以使用`items()`、`keys()`、`values()`、`iteritems()`、`iterkeys()`、`itervalues()`
```
{% for k,v in user.items() %}
{{ k }}:{{ v }}
{% endfor %}
```
2. 列表的遍歷:語法和`python`一樣。
```
{% for website in websites %}
{{ website }}
{% endfor %}
```
### 繼承和block:
1. 繼承作用和語法:
* 作用:可以把一些公共的代碼放在父模板中,避免每個模板寫同樣的代碼。
* 語法:
```
{% extends 'base.html' %}
```
2. block實現(xiàn):
* 作用:可以讓子模板實現(xiàn)一些自己的需求。父模板需要提前定義好。
* 注意點:字模板中的代碼,必須放在block塊中。
### url鏈接:使用`url_for(視圖函數(shù)名稱)`可以反轉(zhuǎn)成url。
### 加載靜態(tài)文件:
1. 語法:`url_for('static',filename='路徑')`
2. 靜態(tài)文件,flask會從`static`文件夾中開始尋找,所以不需要再寫`static`這個路徑了。
3. 可以加載`css`文件,可以加載`js`文件,還有`image`文件。
```
第一個:加載css文件
第二個:加載js文件
第三個:加載圖片文件
總結(jié)
以上是生活随笔為你收集整理的Flask mysql 模版传参_Flask渲染Jinja2模板和传参的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暗区突围手游狗牌作用是什么
- 下一篇: hprose for java 教程_h