1. 程式人生 > >002.Flask模板基礎規範

002.Flask模板基礎規範

1.修改模板的索引路徑:app = Flask(__name__,template_folder="模板路徑")2.在HtML模板中引用資料:{{ 要引用的資料名稱 }}例:<title>{{ title }}</title>3.在HTML模板中定義執行程式碼:{% 要執行的邏輯程式碼 %}例:{% for person in persons %}<tr><td>{{ person.name }}</td><td>{{ person.age }}</td><td>{{ person.gender }}</td>
</tr> {% endfor%}4.在HTML模板中註釋{#要註釋的內容#}例:{#   <p>這是一個註釋的你看不到</p> <p>這是另外一行的註釋</p> #}5.在HTML模板中使用`url_for`可以反轉一個檢視函式為`url`......@app.route('/')def hello_world(): return render_template('index.html','index')@app.route('/login/')def login(): return render_template('login.html','login')
......index.html  ......<ahref="{{ url_for('login') }}">連線到登入頁面</a>......6.在HTML模板中引入一個模板......{% include 'index/headers.html'%}新聞列表{% include 'index/footers.html'%}......7.在HTML模板中為指定引數賦值......{% set name='xiaotuo'%}<p>{{ name }}</p>......8.屬性訪問規則# Jinja2中訪問字典的方式有兩種:
1. 使用`python`
的語法進行訪問,以點的形式進行訪問:
...<p>標題:{{ movie.title }}</p>...查詢順序如下:    * 先去查詢foo的bar這個屬性,也即通過getattr(foo,'bar')。    * 如果沒有,就去通過foo.__getitem__('bar')的方式進行查詢。    * 如果以上兩種方式都沒有找到,返回一個undefined。2. 直接使用原生字典的方式進行訪問,示例如下:...<p>標題:{{ movie['title']}}</p>...查詢順序如下:
    * 通過foo.__getitem__('bar')的方式進行查詢。
    * 如果沒有,就通過getattr(foo,'bar')的方式進行查詢。
    *如果以上沒有找到,則返回一個undefined。9.模板的繼承1. 繼承的好處:
    * 可以複用父類的程式碼,節省開發時間。
    * 還可以針對自己的需要進行重寫,比較靈活。
2. `Flask`中的模板可以繼承,通過繼承可以把模板中許多重複出現的元素抽取出來,放在父模板中,並且父模板通過定義`block`的形式給子模板開一個口,子模板根據需要,再實現這個`block`
3. 子模板通過`{%extends 'path/base.html'%}`的形式繼承模板。
4. 子模板如果想實現一些自己的功能,那麼程式碼必須要放在父模板定義好的`block`,否則將顯示不出來。
5. 使用`{{super()}}`可以把父類的這個`block`中的程式碼繼承下來。
6. 使用`{{self.blockname()}}`可以把`blockname`這個`block`中的程式碼直接引用到當前位置。