模板是一個(gè)包含響應(yīng)的文本的文件,期中包含用占位變量表示的動(dòng)態(tài)部分,其具體值只在請(qǐng)求的上下文中才能知道。使用真實(shí)替換變量,再返回最終得到的響應(yīng)字符串,這一過程稱為“渲染”。 在Falsk中使用Jinja2這個(gè)模板引擎。
2.1.1渲染模板
默認(rèn)情況下,F(xiàn)alsk在程序/項(xiàng)目的文件夾中的templates子文件夾中尋找模板。我們可以將定義好的模板保存在這個(gè)文件夾中。 現(xiàn)在我們改造下“01講中的首例”:
from flask import Flask,render_templatefrom flask import requestapp = Flask(__name__)@app.route('/')def index(): user_agent=request.headers.get('User-Agent')return render_template('index.html',user_agent=user_agent)@app.route('/user/<name>')def hello_world(name):return render_template('user.html',name=name)if __name__ == '__main__':app.run(debug=True)然后分別在templates文件夾下新建兩個(gè)文件index.html和user.html,
內(nèi)容分別如下:
從這里我們可以看到:Falsk提供render_template函數(shù)把jinja2模板引擎集成到了程序中。 render_template函數(shù)的第一個(gè)參數(shù)是模板的文件名。隨后的參數(shù)都是鍵值對(duì),表示末班中變量對(duì)應(yīng)的真實(shí)值。
2.1.2jinja2變量過濾器
注意:很多情況下需要顯示變量中存儲(chǔ)的HTML代碼,這時(shí)就需要使用safe過濾器。但是,千萬不要在不可信的值上使用safe過濾器,例如用戶在表單中輸入的文本。
2.1.3控制結(jié)構(gòu)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注