【Flask】Jinja2之模板继承
生活随笔
收集整理的這篇文章主要介紹了
【Flask】Jinja2之模板继承
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般我們的網站雖然頁面多,但是很多部分是重用的,比如頁首,頁腳,導航欄之類的。對于每個頁面,都要寫這些代碼,很麻煩。
Flask的Jinja2模板支持模板繼承功能,省去了這些重復代碼。
塊和繼承
案例
父模板
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>父模板</title> </head> <body>{% block temp1 %}<P>頁面的頭部</P><hr> {% endblock %}{% block temp2 %}<P>頁面的尾部</P><hr> {% endblock %}</body> </html>子模版
注意子模版要想繼承父模板需要在html模板的頂部加上一行代碼
{% extends “父模板文件名字.html” %}
例如:{% extends “parent.html” %}
視圖
from flask import Flask,render_template#todo 初始化Flask項目的服務 app = Flask(__name__)@app.route('/extends') def hello_world():return render_template("child.html")if __name__ == '__main__':#0.0.0.0:代表當前的系統的所有的ip地址,# 設置端口為8080,# flask的debug模式:把錯誤的信息顯示到頁面中app.run(host='0.0.0.0',port=8080,debug=True)啟動項目
發現父模板中頁面的頭部沒有繼承,什么原因?
原因:父模板中定義了“temp1”,子模版也定義了“temp1”,子模板重寫了父模板中的方法,所以不會繼承。
如果想要繼承需要加“{{ super() }}”
include標簽
這個標簽相當于是直接將指定的模版中的代碼復制粘貼到當前位置。include標簽,如果想要使用父模版中的變量,直接用就可以了。include的路徑,也是跟import一樣,直接從templates根目錄下去找,不要以相對路徑去找。
案例:
頁面的頭部文件
頁面的尾部文件
目標文件
視圖
啟動項目
總結
以上是生活随笔為你收集整理的【Flask】Jinja2之模板继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Flask】项目中使用请求钩子的妙处有
- 下一篇: 关于解决mybase7继续使用的方法