日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flask中jinjia2模板引擎详解3

發布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flask中jinjia2模板引擎详解3 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上文

模板繼承

Jinji2中的模板繼承是jinjia2比較強大的功能之一。

?

模板繼承可以定義一個父級公共的模板,把同一類的模板框架定義出來共享。

這樣做一方面可以提取共享代碼,減少代碼冗余和重復的工作量

另一方面,對于后期的維護和管理也非常方便。

?

一個根模板(或叫基模板)主要有三部分組成:

  一是公共的js,css等資源文件的引用,

  二是定義好一個布局框架,

  三是定義子模板可以重寫的部分(block)

?

下面我們以一個例子來說明模板繼承的使用方法

  • 創建一個基模板
  • 選中templates文件夾,右鍵選擇新建->HTML文件

    ?

    ?

    在彈出的窗口中輸入要創建的文件名:base.html,

    ?

    ?

    點擊確定

    然后把下面的代碼copy到base.html中

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><html lang="en"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" href="{{ url_for('static',filename='style.css') }}" />{% block head %}<title>{% block title %}{% endblock %} - My Webpage</title>{% endblock %}</head><body><div id="content">{% block content %}{% endblock %}</div><div id="footer">{% block footer %}&copy;Copyright 2018{% endblock %}</div></body>

    ?

    ?

    在這個基模板中,可以看到定義了4個block,每個個block就是告訴子模板,可以重寫這些block中的內容

    在同一個模板中不能定義同名的block

    注意在static文件夾中添加style.css文件:

    ?

    Style.css文件中只有一行代碼:

    body{background-color:red;}

    ?

  • 創建一個子模板
  • 用同樣的方法在template下面創建一個sub.html文件,代碼如下

    {% extends "base.html" %}{% block title %}Index{% endblock %}{% block head %}{{ super() }}<style type="text/css">.important { color: #336699; }</style>{% endblock %}{% block content %}<h1>Index</h1><p class="important">Welcome on my awesome homepage.</p>{% endblock %}

    ?

    ?

    可以看到這個子模板用extends方法繼承了base.html模板,然后又重寫了 title, head, content三個block中的內容

    一個模板中不能出現重復名稱的block塊

    其中的supper()用來調用父級模板中的block塊內容,在本例中,supper()會把父級的head塊內容寫到子模板中

    ?

  • 定義route
  • 在code.py文件中添加sub.html的route定義

    @app.route("/tmpl/sub")def renderSub():return render_template("sub.html")

    ?

    ?

    運行效果

    ?

    如果想多次調用一個block塊,可以使用self.block塊名稱進行調用,比如,我們把<h1>Index</h1>這里替換成<h1>{{self.title()}}</h1>

    ?

    運行效果:

    ?

    ?

    轉載于:https://www.cnblogs.com/itxb/p/8511380.html

    總結

    以上是生活随笔為你收集整理的flask中jinjia2模板引擎详解3的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。