您好,登錄后才能下訂單哦!
這篇文章主要介紹flask模板指的是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
所謂模板就是就是模具,模型;我們現實生活中經常碰到這種東西,就比如說廠家要批量生產一種鋼化杯子,那么廠家肯定是先建模,設計出一個杯子的模型,并在此基礎上做出模具,之后的生產,只需要將冶煉好的金屬注入其中即可。我們學習的模板就類似于這種模具,只不過我們這里的是 web 模板。模板的誕生是為了將顯示與數據分離,讓前端工作人員專注表現設計,后臺人員注重業務邏輯,同時簡化代碼的復雜程度。模板技術多種多樣,但其本質是將模板文件和數據通過模板引擎生成最終的HTML代碼。
渲染模板
所謂渲染模板,其實就是將數據插入到你的模板中,例如:
這是一個 user.html的文件
<h2>Hello, {{ name }}!</h2>
這是一個視圖函數
from flask import Flask,render_template @app.route('/user/<name>') def user(name): return render_template('user.html',name=name)
flask 提供的 render_template 函數將 Jinja2 模板引擎集成到了程序中。render_template 函數第一個參數是模板的文件名。隨后的參數都是鍵值對,表示模板中變量對應的真實值,注意一下,這個 render_template 查詢響應文件是有位置的,默認的是在當前腳本的同級目錄的templates目錄下,如果不是這個目錄下的文件是查詢不到的,需另行修改。(如圖所示,我的視圖函數在 manage 中,而我的響應文件則保存在 templates 中)
拿上面這個例子來舉例,首先在 user.html 文件中有一個變量name,user這個函數的形參中也有一個變量 name 在響應的時候會將 user.html 中的name替換為user函數所接收到的參數,打個比方,如果訪問的是’/user/tom’,那么這個時候,user.html 的顯示效果就是 Hello,tom!
變量
上面的例子提到了變量,在模板中使用 {{ name }} 結構表示一個變量,它是一種特殊的占位符,告訴模板引擎這個地方要被替換為渲染時傳遞過來的數據。Jinja2 能識別所有類型的變量,例如列表,字典,對象等,例子見下:
<p>A value from a dirctionary: {{ mydict['key'] }}.</p> <p>A value from a list: {{ mylist[2] }}.</p> <p>A value from a list,with a variable index: {{ mylist[myintvar] }}.</p> <p>A value from an object's method: {{ myobj.somemethod() }}.</p>
還可以使用過濾器修改變量,過濾器名添加在變量名之后,與變量名之間用豎線分隔。如下,為模板以首字母大寫形式顯示變量 name 的值.
hello, {{ name|capitalize }}
Jinja2的常用過濾器
safe 過濾器需要注意一下,默認情況下,出于安全考慮,Jinja2 會轉義所有的變量。如果需要顯示變量中存儲的源碼時,就可以考慮使用 safe 過濾器了。但需要切記的是,千萬不可在不可信的值上使用 safe 過濾器,例如用戶在表單輸入的文本等。
控制結構
Jinja2提供了多種控制結構,可用來改變模板的渲染流程。語法:{% 語句 %} 具體例子見下:
條件控制語句:
{% if user %} Hello ,{{ user }}!{% else %} Hello ,Stranger!{% endif %}
循環控制:
<ul> {% for comment iin comments %} <li>{{ comment }}</li> {% endfor %}</ul>
以上是flask模板指的是什么的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。