請關注公衆號:自動化測試實戰html
上一節咱們介紹了模板的基本使用方法,如今咱們想一個問題,若是把index.html
放到template
文件夾下面的文件夾該怎麼辦呢?其實很容易,當文件夾結構以下圖所示時:flask
咱們只須要修改render_template
的值便可,代碼以下:app
若是你在pycharm裏面修改,pycharm會自動幫你改應用的代碼的。post
如今來想另外一個問題,就是既然模板能夠複用,那麼它裏面的內容確定不可能寫死對吧,若是寫成固定值那每一個頁面的內容都成了同樣的了,因此模板就須要寫成變量的形式,經過給變量傳值來修改模板對應的內容。在flask中,變量的寫法是{{ 變量值 }}
這種兩個大括號(又叫大鬍鬚
)的形式。
如今咱們在主文件給一段字符串,而後想把它應用到.html
模板中,咱們該怎門辦呢?根據render_template
的源碼知道它還有第二個參數——關鍵字參數**context
,因此咱們知道只須要給它傳一個關鍵字參數便可,加上剛纔的大鬍鬚傳遞變量,咱們來看一段代碼:測試
templateDemo.py
文件spa
# coding: utf-8
from flask import Flask, render_template app = 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
文件debug
<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8"> <title>這裏是title</title>
</head>
<body> <h1>{{ title }}</h1>
</body>
</html>
如今來執行代碼,而後去頁面查看:code
咱們看到title
的內容已經在頁面上顯示出來了。htm
這是模板引用變量的最簡單的一個例子。utf-8
如今咱們來渲染一個字典(就是傳值爲字典,專業術語叫渲染,記住了):
# coding: utf-8
from flask import Flask, render_template app = 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
文件
<!DOCTYPE html>
<html lang="en">
<head> <meta charset="UTF-8"> <title>這裏是title</title>
</head>
<body> <h1>{{ title.name }}</h1>
</body>
</html>
能夠看到,取值的方式就是title.name
便可。
請關注公衆號:自動化測試實戰