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() %}

????????<p>{{ k }}:{{ v }}</p>

????{% endfor %}

????```

2. 列表的遍歷:語法和`python`一樣。

????```

????{% for website in websites %}

????????<p>{{ website }}</p>

????{% endfor %}

????```


### 繼承和block:

1. 繼承作用和語法:

????* 作用:可以把一些公共的代碼放在父模板中剩彬,避免每個模板寫同樣的代碼酷麦。

????* 語法:

????????```

????????{% extends 'base.html' %}

????????```

2. block實(shí)現(xiàn):

????* 作用:可以讓子模板實(shí)現(xiàn)一些自己的需求。父模板需要提前定義好喉恋。

????* 注意點(diǎ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文件

????<link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}">

????第二個:加載js文件

????<script src="{{ url_for('static',filename='js/index.js') }}"></script>

????第三個:加載圖片文件

????<img src="{{ url_for('static',filename='images/zhiliao.png') }}" alt="">

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末升酣,一起剝皮案震驚了整個濱河市舷暮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件火俄,死亡現(xiàn)場離奇詭異,居然都是意外死亡诸狭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門君纫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驯遇,“玉大人,你說我怎么就攤上這事蓄髓〔媛” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵会喝,是天一觀的道長陡叠。 經(jīng)常有香客問我,道長肢执,這世上最難降的妖魔是什么枉阵? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮预茄,結(jié)果婚禮上兴溜,老公的妹妹穿的比我還像新娘。我一直安慰自己耻陕,他們只是感情好拙徽,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诗宣,像睡著了一般膘怕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上召庞,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天岛心,我揣著相機(jī)與錄音,去河邊找鬼篮灼。 笑死鹉梨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的穿稳。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼晌坤,長吁一口氣:“原來是場噩夢啊……” “哼逢艘!你這毒婦竟也來了旦袋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤它改,失蹤者是張志新(化名)和其女友劉穎疤孕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體央拖,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祭阀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲜戒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片专控。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖遏餐,靈堂內(nèi)的尸體忽然破棺而出伦腐,到底是詐尸還是另有隱情,我是刑警寧澤失都,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布柏蘑,位于F島的核電站,受9級特大地震影響粹庞,放射性物質(zhì)發(fā)生泄漏咳焚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一庞溜、第九天 我趴在偏房一處隱蔽的房頂上張望革半。 院中可真熱鬧,春花似錦强缘、人聲如沸督惰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赏胚。三九已至,卻和暖如春商虐,著一層夾襖步出監(jiān)牢的瞬間觉阅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工秘车, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留典勇,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓叮趴,卻偏偏與公主長得像割笙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理伤溉,服務(wù)發(fā)現(xiàn)般码,斷路器,智...
    卡卡羅2017閱讀 134,711評論 18 139
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時乱顾,會觸發(fā)此異常板祝。 O...
    我想起個好名字閱讀 5,338評論 0 9
  • 有個故事說:從前有個小王國券时,這個王國里有一個聰明又有才智的宰相很受國王的器重。這個宰相有句口頭禪伏伯,就是無論發(fā)生什么...
    成曉閱讀 3,956評論 0 8
  • MSc TESOL: Teaching English to Speakers of Other Language...
    富富菌閱讀 79評論 0 0
  • 你的中心力量是紅月亮橘洞,指引力量紅地球,挑戰(zhàn)力量藍(lán)風(fēng)暴舵鳞,支持力量白狗震檩,推動力黃人。你是超頻的紅月亮蜓堕,代表地球的水抛虏,宇...
    amandaguo閱讀 337評論 0 0