模板是一個包含響應的文本的文件,期中包含用占位變量表示的動態部分,其具體值只在請求的上下文中才能知道。使用真實替換變量,再返回最終得到的響應字符串,這一過程稱為“渲染”。 在Falsk中使用Jinja2這個模板引擎。
2.1.1渲染模板
默認情況下,Falsk在程序/項目的文件夾中的templates子文件夾中尋找模板。我們可以將定義好的模板保存在這個文件夾中。 現在我們改造下“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文件夾下新建兩個文件index.html和user.html, 內容分別如下:
從這里我們可以看到:Falsk提供render_template函數把jinja2模板引擎集成到了程序中。 render_template函數的第一個參數是模板的文件名。隨后的參數都是鍵值對,表示末班中變量對應的真實值。
2.1.2jinja2變量過濾器
注意:很多情況下需要顯示變量中存儲的HTML代碼,這時就需要使用safe過濾器。但是,千萬不要在不可信的值上使用safe過濾器,例如用戶在表單中輸入的文本。
2.1.3控制結構
新聞熱點
疑難解答