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