這篇文章主要介紹flask模板指的是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)專(zhuān)業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專(zhuān)業(yè)提供成都服務(wù)器托管,服務(wù)器租用,達(dá)州電信機(jī)房,達(dá)州電信機(jī)房,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
所謂模板就是就是模具,模型;我們現(xiàn)實(shí)生活中經(jīng)常碰到這種東西,就比如說(shuō)廠家要批量生產(chǎn)一種鋼化杯子,那么廠家肯定是先建模,設(shè)計(jì)出一個(gè)杯子的模型,并在此基礎(chǔ)上做出模具,之后的生產(chǎn),只需要將冶煉好的金屬注入其中即可。我們學(xué)習(xí)的模板就類(lèi)似于這種模具,只不過(guò)我們這里的是 web 模板。模板的誕生是為了將顯示與數(shù)據(jù)分離,讓前端工作人員專(zhuān)注表現(xiàn)設(shè)計(jì),后臺(tái)人員注重業(yè)務(wù)邏輯,同時(shí)簡(jiǎn)化代碼的復(fù)雜程度。模板技術(shù)多種多樣,但其本質(zhì)是將模板文件和數(shù)據(jù)通過(guò)模板引擎生成最終的HTML代碼。
渲染模板
所謂渲染模板,其實(shí)就是將數(shù)據(jù)插入到你的模板中,例如:
這是一個(gè) user.html的文件
Hello, {{ name }}!
這是一個(gè)視圖函數(shù)
from flask import Flask,render_template @app.route('/user/') def user(name): return render_template('user.html',name=name)
flask 提供的 render_template 函數(shù)將 Jinja2 模板引擎集成到了程序中。render_template 函數(shù)第一個(gè)參數(shù)是模板的文件名。隨后的參數(shù)都是鍵值對(duì),表示模板中變量對(duì)應(yīng)的真實(shí)值,注意一下,這個(gè) render_template 查詢響應(yīng)文件是有位置的,默認(rèn)的是在當(dāng)前腳本的同級(jí)目錄的templates目錄下,如果不是這個(gè)目錄下的文件是查詢不到的,需另行修改。(如圖所示,我的視圖函數(shù)在 manage 中,而我的響應(yīng)文件則保存在 templates 中)
拿上面這個(gè)例子來(lái)舉例,首先在 user.html 文件中有一個(gè)變量name,user這個(gè)函數(shù)的形參中也有一個(gè)變量 name 在響應(yīng)的時(shí)候會(huì)將 user.html 中的name替換為user函數(shù)所接收到的參數(shù),打個(gè)比方,如果訪問(wèn)的是’/user/tom’,那么這個(gè)時(shí)候,user.html 的顯示效果就是 Hello,tom!
變量
上面的例子提到了變量,在模板中使用 {{ name }} 結(jié)構(gòu)表示一個(gè)變量,它是一種特殊的占位符,告訴模板引擎這個(gè)地方要被替換為渲染時(shí)傳遞過(guò)來(lái)的數(shù)據(jù)。Jinja2 能識(shí)別所有類(lèi)型的變量,例如列表,字典,對(duì)象等,例子見(jiàn)下:
A value from a dirctionary: {{ mydict['key'] }}.
A value from a list: {{ mylist[2] }}.
A value from a list,with a variable index: {{ mylist[myintvar] }}.
A value from an object's method: {{ myobj.somemethod() }}.
還可以使用過(guò)濾器修改變量,過(guò)濾器名添加在變量名之后,與變量名之間用豎線分隔。如下,為模板以首字母大寫(xiě)形式顯示變量 name 的值.
hello, {{ name|capitalize }}
Jinja2的常用過(guò)濾器
safe 過(guò)濾器需要注意一下,默認(rèn)情況下,出于安全考慮,Jinja2 會(huì)轉(zhuǎn)義所有的變量。如果需要顯示變量中存儲(chǔ)的源碼時(shí),就可以考慮使用 safe 過(guò)濾器了。但需要切記的是,千萬(wàn)不可在不可信的值上使用 safe 過(guò)濾器,例如用戶在表單輸入的文本等。
控制結(jié)構(gòu)
Jinja2提供了多種控制結(jié)構(gòu),可用來(lái)改變模板的渲染流程。語(yǔ)法:{% 語(yǔ)句 %} 具體例子見(jiàn)下:
條件控制語(yǔ)句:
{% if user %} Hello ,{{ user }}!{% else %} Hello ,Stranger!{% endif %}
循環(huán)控制:
以上是flask模板指的是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!