国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

flask入門2-模板引擎

JerryC / 1128人閱讀

摘要:模板模板引擎說明模板文件就是按照一定的規則書寫的展示效果的文件模板引擎就是負責按照指定規則進行替換的工具模板引擎選擇一渲染模板的方法將渲染的模板進行返回渲染字符串返回實例將模板內容響應給用戶渲染一內容響應給用戶原諒色二模板的語法模板中只存

day2模板 模板引擎

說明:模板文件就是按照一定的規則書寫的展示效果的HTML文件 模板引擎就是負責按照指定規則進行替換的工具

模板引擎選擇jinja2

一、渲染模板的方法

將渲染的模板進行返回

render_template()

渲染字符串返回

render_templates_string()

實例

@app.route("/")
def index():
    #將模板內容響應給用戶
    return render_template("index.html")
    #渲染一內容響應給用戶
    return render_template_string("

原諒色

")
二、模板的語法

模板中只存在倆種語法

變量

{{ var }}

#像模板文件中傳參
return render_template("index.html",title="首惡")
{{ title }}

標簽

{% 標簽名 %}

注意:

在模板中使用字典中的鍵 需要像使用對象得方式來調用
{{data.key}}

如果在模板中給定的變量不存在 則插入的是空字符串 不會報錯

三、過濾器

過濾器使用管道符 | 來使用的

{{ var|abs }} 返回一個數值的絕對值

default 設置默認值

只有當給定的變量不存在時 則執行默認值

當設置default的boolean的時候 會執行默認值

  • {{ data.bool|default("我是默認值",boolean=True) }}
  • first: 取出變量中的第一個字符

    last: 取出變量中的最后一個字符

    format: 字符的格式化

  • {{ "我叫%s 我今年%d歲了 我的存款為 %.2f"|format("羅鐵漢",38,23) }}
  • length: 返回變量值的長度

    join: 拼接成字符串

  • {{ [1,2,3,4]|join("") }}
  • {{ [1,2,3,4]|join("x") }}
  • safe: 不轉義標簽 原樣顯示

    lower 轉為小寫

    upper 轉為大寫

    replace 替換

  • {{ data.string|replace("a","x") }}
  • striptages 去除HTML標簽

    {{ data.html|striptags }}

    四、標簽
    語法格式 :{% 標簽名 %}
    (1) if

    實例

    {% if data.bool %}
            
  • {{ data.bool }}值為真
  • {% elif True %}
  • {{ True }}職位真
  • {% else %}
  • {{ data.bool }}值為假
  • {% endif %}
    (2) for 循環

    實例

    {% for i in data.xxxx %}
    {#  錯誤的迭代方法TypeError: "bool" object is not iterable #}
    {#    {% for i in data.bool %}#}
            
  • {{ i }}
  • {% else %}
  • 當迭代的變量不存在時 則執行else
  • {% endfor %}

    注意:

    break continue 不能夠在這里使用

    迭代字典
    {% for k,v in data.items() %}
         
  • {{ k }}=>{{ v }}
  • {% endfor %}
    獲取當前迭代的狀態
    變量 描述
    loop.index 獲取當前迭代的索引 從1開始
    loop.index0 獲取當前迭代的索引 從0開始
    loop.first 是否為第一次迭代
    loop.last 是否為最后一次迭代
    loop.length 迭代的長度
    六、注釋

    {# 多行注釋 #}

    七、文件包含 include

    相當于把一個文件 拷貝到當前的你的包含的位置

    實例

    {% include "common/header.html" %}
    
    我是中間的內容
    {% include "common/footer.html" %}

    注意:

    包含的公共的文件中 只存放 公共的代碼 除此以外什么都不要存在

    導入的時候 如果文件和在同一級別 直接導入就可以 如果包含在某個目錄中 需要寫出路徑

    {% include "common/header.html" %}
    {% include "test.html" %}

    ?

    八、宏 macro

    概念: 類似python中的函數

    實例

    在macro.html中

    {% macro input(name,type="text",value="") %}
        
    {% endmacro %}

    宏的調用

    {{ input("text","username","") }}
    {{ input() }} 
    {{ input(type="password",name="userpass") }}
    宏的導入 (1) import
    {% import "test.html" as test %}
    {% import "common/test.html" as test %}
    

    用戶名: {{ test.input(type="password",name="userpass") }}

    (2) form import
    {% from "test.html" import input %}
    {% from "common/test.html" import input %}
    

    用戶名: {{ input(type="password",name="userpass") }}

    注意:

    宏的調用只能在定義的下方去調用 否則未定義

    宏如果存在形參 且沒有默認值 則可以調用(沒意義)

    形參的默認值 需要遵循默認值規則 有默認值的參數 放右側

    可以正常使用 關鍵字參數

    九、繼承 extends
    語法:

    {% extends %} 繼承某個模板

    {% block %} 挖坑和填坑

    {{ super() }} 調用被替換掉的代碼

    base.html
    
    
    
    {% block header %}
        
        {% block meta %}
        {% endblock %}
        {% block title%}首頁{% endblock %}
        
        {% block link %}
        {% endblock %}
        {% block script %}
        {% endblock %}
    {% endblock %}
    
    
    
    頭部
    {% block con %} 我是中間的內容部分 {% endblock %}
    尾部
    index.html繼承 base.html
    {% extends "common/base.html" %}
    {% block title %}
    我的首頁
    {% endblock %}
    {% block style %}
        {{ super() }}
        p{color:green;}
    {% endblock %}
    {% block con %}
    

    我是首頁的內容

    我是首頁的內容 {% endblock %}

    注意:

    如果當替換某個樣式的時候 所有原來的樣式 都消失了 去查看是否使用了super()

    十、flask-bootstrap

    安裝

    pip install flask-bootstrap

    sudo pip3 install flask-bootstrap

    使用

    繼承 bootstrap/base.html 基礎模板 改造成適用于自己網站的base.html基礎模板

    自己的base.html
    {% extends "bootstrap/base.html" %}
    {% block navbar %}
        
    {% endblock %}
    {% block content %}
        
    {% block pagecontent %} 網頁的中間內容部分寫在當前的位置 {% endblock %}
    {% endblock %}

    使用 index.html

    {% extends "common/base.html" %}
    {% block title %}
    首頁
    {% endblock %}
    十一、錯誤頁面的定制 manage.py
    @app.errorhandler(404)
    def page_not_found(e):
        return render_template("common/error.html",error=e,code=404)
    
    @app.errorhandler(500)
    def server_error(e):
        return render_template("common/error.html",error=e,code=500)
    error.html
    {% extends "common/base.html" %}
    {% block title %}
        {{ code }}錯誤
    {% endblock %}
    {% block pagecontent %}
        
    {% endblock %}
    十二、視圖傳遞多個參數 (1) 原始傳參
    @app.route("/")
    def index():
        return render_template("index.html",arg1=1,arg2=2...)
    (2) 使用字典
    @app.route("/")
    def index():
        return render_template("index.html",arg={arg1:1,arg2:2...})
        kwarg={arg1:1,arg2:2...}
        return render_template("index.html",``)
    (3) 使用全局變量g
    @app.route("/")
    def index():
        g.name = "張三"
        g.age = 18
        return render_template("index.html")
    模板中
        
    1. {{ g.name }}
    2. {{ g.age }}
    (4) 使用 **locals()
    @app.route("/")
    def index():
        name = "張三"
        age = 18
        print(locals())
        return render_template("index.html",**locals())
    模板中
    
  • {{ name }}
  • {{ age }}
  • 十三、url_for 構造絕對的鏈接地址
    @app.route("/test/")
    def test():
        print(url_for("index",_external=True))
        return "test"
    十四、加載靜態資源

    靜態資源:圖片,css,js,視頻,音頻,,

    實例

    flask入門3-表單

    文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

    轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41825.html

    相關文章

    • flask入門1

      摘要:每天的內容跑起來模板引擎表單文件上傳郵件發送一框架的簡介模型負責數據的操作視圖負責數據的展示控制器控制你的的操作以及視圖模板的渲染在中叫做模型負責數據的操作控制你的的操作以及視圖模板的渲染業務邏輯的操作模板負責數據的展示二架構三概念是 flask 每天的內容 flask跑起來 模板引擎 flask表單 文件上傳郵件發送 flask-sqlalchemy 一、web框架的簡介 M ...

      Freelander 評論0 收藏0
    • flask文檔學習筆記1-快速入門

      摘要:示例如下靜態路由使用動態變量的路由未指定變量類型使用動態變量的路由指定變量類型指定的路由變量,可以作為被裝飾的函數參數傳入進來。 開始決定認真的在網上寫一些東西,主要原因還是在于希望能提升學習效果。雖說python寫了有幾年,但是web后端框架的確沒怎么接觸過,買了本狗書寥寥草草的過了一遍,發現很多東西還是理解不深,真的是好記性不如爛筆頭,知識也要從基礎開始,退回來好好看看官方文檔,再...

      lingdududu 評論0 收藏0
    • 從零開始搭建論壇(三):Flask框架簡單介紹

      摘要:我們的論壇項目就使用了該框架。此外,麥子學院也有一個入門視頻教程,一共小時的視頻教程,涵蓋開發的方方面面,包括環境的搭建,語法介紹,項目結構的組織,全球化,單元測試等內容。博客地址更多閱讀的機制三個框架的對比 前面兩篇文章中我們已經了解 Web(HTTP)服務器,Web應用程序,Web框架,WSGI這些 Python Web 開發中的概念。我們知道,Web框架通過將不同Web應用程序中...

      Alan 評論0 收藏0

    發表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <