Jinja2模板(1) --基本概念,模板引擎,渲染模板

首先需要了解幾個概念

例:當用戶在網站中註冊了一個新賬戶,用戶在表單中填寫信息,然後點擊提交按鈕。

業務邏輯:服務器接收到包含用戶輸入數據的請求,然後Flask把請求分發到處理註冊請求的視圖函數。

表現邏輯:這個視圖需要訪問數據庫,添加新用戶,然後生成響應回送給瀏覽器。

業務邏輯和表現邏輯混在一起會使得代碼難以維護和擴展。把表現邏輯移到模板中可以提升程序的可維護性。

模板:是一個包含響應文本的文件,其中包含用佔位變量表示的動態部分,其具體指只在請求的上下文中才能知道。

渲染:使用真實值替換變量,再返回最終得到的響應字符串,這一過程被稱爲渲染。


形式最簡單的Jinja2模板就是一個包含響應文本的文件,默認情況下,Flask再程序文件夾中的templates子文件夾中尋找模板。如:

例1.

templates/index.html:Jinja2模板

<h1>Hello world!</h1>
例2.
templates/user.html:Jinja2模板
<h1>Hello, {{ name}}</h1>

渲染模板

Flask提供的render_template()函數把JinJa2模板引擎集成到了程序中。在程序中,第一個參數是模板的文件名,隨後的參數爲鍵值對。
在pycharm中建立一個flask項目test4,在此項目的templates文件中建立上面的例1和例2的兩個模板,然後創建一個hello.py,來定義視圖函數來渲染這些模板。具體程序見下圖:




運行此程序,等待服務器啓動起來後,分別在瀏覽器中訪問http://127.0.0.1:5000/ 和http://127.0.0.1:5000/user/sky

發佈了39 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章