flask第十八篇——模板【2】
請(qǐng)關(guān)注公眾號(hào):自動(dòng)化測(cè)試實(shí)戰(zhàn)
上一節(jié)我們介紹了模板的基本使用方法,現(xiàn)在我們想一個(gè)問題,如果把index.html放到template文件夾下面的文件夾該怎么辦呢?其實(shí)很容易,當(dāng)文件夾結(jié)構(gòu)如下圖所示時(shí):
我們只需要修改render_template的值即可,代碼如下:
如果你在pycharm里面修改,pycharm會(huì)自動(dòng)幫你改應(yīng)用的代碼的。
?
現(xiàn)在來想另一個(gè)問題,就是既然模板可以復(fù)用,那么它里面的內(nèi)容肯定不可能寫死對(duì)吧,如果寫成固定值那每個(gè)頁面的內(nèi)容都成了一樣的了,所以模板就需要寫成變量的形式,通過給變量傳值來修改模板對(duì)應(yīng)的內(nèi)容。在flask中,變量的寫法是{{ 變量值 }}這種兩個(gè)大括號(hào)(又叫大胡須)的形式。
現(xiàn)在我們?cè)谥魑募o一段字符串,然后想把它應(yīng)用到.html模板中,我們?cè)撛蹰T辦呢?根據(jù)render_template的源碼知道它還有第二個(gè)參數(shù)——關(guān)鍵字參數(shù)**context,所以我們知道只需要給它傳一個(gè)關(guān)鍵字參數(shù)即可,加上剛才的大胡須傳遞變量,我們來看一段代碼:
templateDemo.py文件
# coding: utf-8from flask import Flask, render_templateapp = Flask(__name__) ?# type: Flask
app.debug = True
@app.route('/')
def hello_world(): ? ?title = u'首頁內(nèi)容' ? ?return render_template('post/index.html', title=title)
if __name__ == '__main__': ? ?app.run()
index.html文件
<!DOCTYPE html><html lang="en">
? ?<head> ? ? ? ?<meta charset="UTF-8"> ? ? ? ?<title>這里是title</title>
? ?</head>
? ?<body> ? ? ? ?<h1>{{ title }}</h1>
? ?
? ?</body>
</html>
現(xiàn)在來執(zhí)行代碼,然后去頁面查看:
我們看到title的內(nèi)容已經(jīng)在頁面上顯示出來了。
這是模板引用變量的最簡(jiǎn)單的一個(gè)例子。
現(xiàn)在我們來渲染一個(gè)字典(就是傳值為字典,專業(yè)術(shù)語叫渲染,記住了):
# coding: utf-8from flask import Flask, render_templateapp = Flask(__name__) ?# type: Flask
app.debug = True
@app.route('/')
def hello_world(): ? ?title = {"name": "Warren",
? ? ? ? ? ? "age": 18,
? ? ? ? ? ? "gender": "male"}
? ?
? ?return render_template('post/index.html', title=title)
? ?
if __name__ == '__main__': ? ?app.run()
執(zhí)行代碼后看到頁面直接顯示了字典title的內(nèi)容:
如果我們現(xiàn)在只想取字典里name的值呢?那么我只需要修改index.html里面的內(nèi)容即可:
index.html文件
<html lang="en">
<head> ? ?<meta charset="UTF-8"> ? ?<title>這里是title</title>
</head>
<body> ? ?<h1>{{ title.name }}</h1>
</body>
</html>
可以看到,取值的方式就是title.name即可。
?
請(qǐng)關(guān)注公眾號(hào):自動(dòng)化測(cè)試實(shí)戰(zhàn)
轉(zhuǎn)載于:https://www.cnblogs.com/captainmeng/p/8692937.html
總結(jié)
以上是生活随笔為你收集整理的flask第十八篇——模板【2】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017-2018-2 20179216
- 下一篇: 提高Service提高进程优先级别,不被