1. 程式人生 > >Flask模板簡介

Flask模板簡介

.模板 - Templates

    1.什麼是模板
        模板:在Falsk中就是允許響應給使用者看的網頁
        在模板中,允許包含"佔位變數"來表示動態的內容
        模板中最終也會被解析成字串再響應給客戶端,這一過程稱之為"渲染"

        falsk中模板是依賴於Jinja2的模板系統
    2.模板的位置
        預設情況下.Flask會在程式資料夾中templates的子資料夾中搜索模板

        預設情況下,需要手動建立templates資料夾
    3.模板的渲染
        在檢視中將模板檔案(xx.html)渲染成字串之後,再響應給客戶端瀏覽器
        函式:rendet_template("xxx.html")
            return rendet_template("xxx.html")

    4.模板中的語法(重難點)


        .1變數:
            變數是一種特殊的佔位符,告訴模板引擎該為位置的值是從渲染模板時的資料中提取出來的
            在檢視中:
                @app.route("/")
                def index():
                    return render("xxx.html",變數1 = 值1,變數2 = 值2,...)
                    return
                    rendef_template('xxx.html',name = "laowang";age = 35)
            在模板中:
                {{變數名}}
                <h1>{{name}}</h1>
        2.過濾器

            1.什麼是過濾器
                過濾器是允許變數輸出前改變變數的值
            2.語法:
                {{變數|過濾器}}

                jinja2模板中常見過濾器
                過濾器名        說明
                capitalize     首字元變大寫,其他變小寫
                lower          將值轉換為小寫
                upper          將值轉換為大寫
                title          將值中的每個單詞首字母變大寫
                trim           去掉值兩邊的空格

            3.標籤
                1.什麼是標籤
                    每個標籤表示的是不同的伺服器端的功能
                2.常用的標籤
                    1.if標籤
                        1.基本if結構
                            {% if 條件 %}
                            {% endif %}
                        2.if...else...結構
                            {%if 條件%}
                                滿足條件時要執行的程式碼
                            {% else %}
                                不滿足條件時要執行的程式碼
                            {% endif %}  

                        3.if ... elif ... else
                            {% if 條件1 %}
                                滿足條件1要執行的程式碼
                            {% elif 條件2 %}
                                滿足條件2要執行的程式碼
                            {% elif 條件3 %}
                                滿足條件3要執行的程式碼
                            {% else %}
                                以上條件都不滿足要執行的程式碼
                            {% endif %}
                    2.for 標籤
                        {% for 變數 in 元組|列表|字典 %}
                        {% endfor %}

                        在jinja2模板中的迴圈中,支援內部變數 -loop
                        loop作用:記載當前迴圈中的一些相關資訊
                        loop常用屬性:
                            1.index
                                用法:loop.index
                                作用:記錄當前迴圈的次數,從1開始記錄
                            2.index 0
                                用法:loop.index0
                                作用:同上,從0開始記
                            3.first
                                用法:loop.first
                                作用:值為TURE,則表示當前迴圈時第一次迴圈
                            4.last:
                                用法:loop.last
                                作用:值為True,則表示當前迴圈是最後一次迴圈

                    3.macro標籤(巨集)
                        1.作用:
                            相當於在模板中宣告函式

                        2.語法:
                            使用{% macro%} 宣告巨集

                            {% macro 名稱(引數列表) %}
                                xxxx xxxx
                            {% endmacro %}
                        3.在獨立的檔案中去宣告巨集
                            1.建立macro.html模板檔案
                              作用:定義專案中要用到的所有的巨集
                            2.在使用的網頁中,匯入macro.html
                            {% import "macro.html" as macros %}
                    4.include 標籤
                        將其它的模板檔案包含到當前的模板檔案中
                        語法:{% include "xxx.html"%}