flask第十八篇——模板【2】
請關(guān)注公眾號:自動化測試實戰(zhàn)
上一節(jié)我們介紹了模板的基本使用方法,現(xiàn)在我們想一個問題,如果把index.html放到template文件夾下面的文件夾該怎么辦呢?其實很容易,當文件夾結(jié)構(gòu)如下圖所示時:
我們只需要修改render_template的值即可,代碼如下:
如果你在pycharm里面修改,pycharm會自動幫你改應(yīng)用的代碼的。
?
現(xiàn)在來想另一個問題,就是既然模板可以復(fù)用,那么它里面的內(nèi)容肯定不可能寫死對吧,如果寫成固定值那每個頁面的內(nèi)容都成了一樣的了,所以模板就需要寫成變量的形式,通過給變量傳值來修改模板對應(yīng)的內(nèi)容。在flask中,變量的寫法是{{ 變量值 }}這種兩個大括號(又叫大胡須)的形式。
現(xiàn)在我們在主文件給一段字符串,然后想把它應(yīng)用到.html模板中,我們該怎門辦呢?根據(jù)render_template的源碼知道它還有第二個參數(shù)——關(guān)鍵字參數(shù)**context,所以我們知道只需要給它傳一個關(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)在頁面上顯示出來了。
這是模板引用變量的最簡單的一個例子。
現(xiàn)在我們來渲染一個字典(就是傳值為字典,專業(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即可。
?
請關(guān)注公眾號:自動化測試實戰(zhàn)
轉(zhuǎn)載于:https://www.cnblogs.com/captainmeng/p/8692937.html
總結(jié)
以上是生活随笔為你收集整理的flask第十八篇——模板【2】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017-2018-2 20179216
- 下一篇: tar命令