一周學會Flask3 Python Web開發-Jinja2模板繼承和include標簽使用

鋒哥原創的Flask3??Python Web開發?Flask3視頻教程:

2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili

不管是開發網站還是后臺管理系統,我們頁面里多多少少有公共的模塊。比如博客網站,就有公共的頭部,菜單和底部欄。每個頁面都有,我們往往要抽取出這些公共模塊,然后統一維護。JinJa2提供了模板繼承和include標簽。

我們先把頂部信息和菜單抽取新建一個header.html放templates下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<p>頭部,菜單</p>
</body>
</html>

同理 底部信息頁抽取新建一個footer.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<p>底部</p>
</body>
</html>

我們再新建一個公共的父模版base.html,其他子模板繼承即可,共同部分比如header,footer繼承下來,不同的部分自己實現。這里可以通過block標簽在父類先預留一塊。然后子類實現block即可。include標簽引入公共模塊。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>{% block title %}默認標題{% endblock %}</title>
</head>
<body>
{% include 'header.html' %}
{% block content %}默認內容
{% endblock %}
{% include 'footer.html' %}
</body>
</html>

新建博客首頁index.html,通過extends繼承base.html,以及重寫實現block title和content

{% extends "base.html" %}
{% block title %}博客首頁
{% endblock %}
{% block content %}博客列表
{% endblock %}

同理博客帖子頁面detail.html

{% extends "base.html" %}
{% block title %}博客帖子
{% endblock %}
{% block content %}博客帖子
{% endblock %}

user.py里實現下視圖函數:

@user_bp.route('/index')
def index():return render_template('index.html')@user_bp.route('/detail')
def detail():return render_template('detail.html')

我們測試下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70774.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70774.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70774.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二十三種設計模式詳解

二十三種設計模式是軟件開發中用于解決常見問題的經典解決方案&#xff0c;它們由 Erich Gamma 等四位作者在《設計模式&#xff1a;可復用面向對象軟件的基礎》一書中提出。這些模式分為三大類&#xff1a;創建型模式、結構型模式 和 行為型模式。 1. 創建型模式&#xff08;…

用pyside6創建一個界面并實現一個小功能且能打包成問題記錄

現在我們要開發一個程序&#xff0c;讓用戶輸入一段文本包含&#xff1a;員工姓名、薪資、年齡。該程序可以把薪資在 2萬 以上、以下的人員名單分別打印出來。 1用designer創建界面并生成UI文件&#xff1b; 2直接調用ui文件實現功能&#xff1b; from PySide6.QtWidgets im…

計算機畢業設計 ——jspssm510springboot 的人職匹配推薦系統

作者&#xff1a;程序媛9688 開發技術&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等。 &#x1f31f;文末獲取源碼數據庫&#x1f31f; 感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff08;免費咨詢指導選題&#xff09;&#xf…

包子湊數——藍橋杯真題Python

包子湊數 輸入輸出樣例 示例 1 輸入 2 4 5輸出 6樣例說明 湊不出的數目包括&#xff1a;1, 2, 3, 6, 7, 11。 示例 2 輸入 2 4 6輸出 INF樣例說明 所有奇數都湊不出來&#xff0c;所以有無限多個 運行限制 最大運行時間&#xff1a;1s最大運行內存: 256M 最大公約數 最大公…

SSM和SpringBoot有什么區別?

SSM&#xff08;Spring、Spring MVC、MyBatis&#xff09;和 Spring Boot 有以下一些區別&#xff1a; 配置方式 SSM&#xff1a;配置相對繁瑣&#xff0c;需要在多個 XML 文件中進行大量的配置。Spring Boot&#xff1a;采用“約定大于配置”的原則&#xff0c;極大地簡化了配…

極簡Python服務器后端

在Python中&#xff0c;可以使用http.server模塊和json模塊來創建一個簡單的HTTP服務器&#xff0c;該服務器可以響應80端口上的/query POST請求&#xff0c;并且請求體為JSON格式。 需要注意&#xff0c;在Linux系統上&#xff0c;使用低于1024的端口&#xff08;如80端口&…

文檔檢索服務平臺

文檔檢索服務平臺是基于Elasticsearch的全文檢索&#xff0c;包含數據采集、數據清洗、數據轉換、數據檢索等模塊。 項目地址&#xff1a;Github、國內Gitee 演示地址&#xff1a;http://silianpan.cn/gdss/ 以下是演示角色和賬號&#xff08;密碼同賬號&#xff09;&#xf…

關于Postman自動獲取token

在使用postman測試聯調接口時&#xff0c;可能每個接口都需要使用此接口生成的令牌做Authorization的Bearer Token驗證&#xff0c;最直接的辦法可能會是一步一步的點擊&#xff0c;如下圖&#xff1a; 在Authorization中去選擇Bearer Token&#xff0c;然后將獲取到的token粘貼…

清華大學DeepSeek文檔下載,清華大學deepseek下載(完成版下載)

文章目錄 前言一、清華大學DeepSeek使用手冊下載二、清華大學DeepSeek使用手冊思維導圖 前言 這是一篇關于清華大學deepseek使用手冊pdf的介紹性文章&#xff0c;主要介紹了DeepSeek的定義、功能、使用方法以及如何通過提示語設計優化AI性能。以下是對這些核心內容的簡要概述&…

Linux:(3)

一&#xff1a;Linux和Linux互傳&#xff08;壓縮包&#xff09; scp:Linux scp 命令用于 Linux 之間復制文件和目錄。 scp 是 secure copy 的縮寫, scp 是 linux 系統下基于 ssh 登陸進行安全的遠程文件拷貝命令。 scp 是加密的&#xff0c;rcp 是不加密的&#xff0c;scp 是…

【新人系列】Python 入門專欄合集

? 個人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4dd; 專欄地址&#xff1a;https://blog.csdn.net/newin2020/category_12801353.html &#x1f4e3; 專欄定位&#xff1a;為 0 基礎剛入門 Python 的小伙伴提供詳細的講解&#xff0c;也歡迎大佬們…

Arcgis 實用制圖技巧--如何制作“陰影”效果

今天給大家介紹arcgis中陰影效果的制作方法,操作很簡單,在ArcMap當中使用制圖表達和移動幾何方式就可以輕松實現。 左側地圖的圖形背景組織很差。右側地圖通過使用陰影效果突出了重點內容。今天,我將要介紹兩種陰影效果的創建方法:第一,純色陰影(single color);第二,漸變…

pandas如何在dataframe上再添加一個dataframe

在pandas中&#xff0c;通常將一個DataFrame與另一個DataFrame進行合并或連接操作&#xff0c;主要有concat函數、merge函數和join方法三種方式&#xff0c;以下是具體介紹&#xff1a; ### 使用concat函數 concat函數可以沿著指定軸將多個DataFrame連接在一起&#xff0c;默認…

YOLOv12 ——基于卷積神經網絡的快速推理速度與注意力機制帶來的增強性能結合

概述 實時目標檢測對于許多實際應用來說已經變得至關重要&#xff0c;而Ultralytics公司開發的YOLO&#xff08;You Only Look Once&#xff0c;只看一次&#xff09;系列一直是最先進的模型系列&#xff0c;在速度和準確性之間提供了穩健的平衡。注意力機制的低效阻礙了它們在…

OpenAI開放Deep Research權限,AI智能體大戰升級,DeepSeek與Claude迎來新對決

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

鴻蒙5.0實戰案例:基于RichEditor的評論編輯

往期推文全新看點&#xff08;文中附帶全新鴻蒙5.0全棧學習筆錄&#xff09; ?? 鴻蒙&#xff08;HarmonyOS&#xff09;北向開發知識點記錄~ ?? 鴻蒙&#xff08;OpenHarmony&#xff09;南向開發保姆級知識點匯總~ ?? 鴻蒙應用開發與鴻蒙系統開發哪個更有前景&#…

通過命令啟動steam的游戲

1. 啟動Steam客戶端 在命令行輸入以下命令來啟動Steam客戶端&#xff1a; start steam://open/main 如果Steam未安裝在默認路徑&#xff0c;可能需要先定位到Steam的安裝目錄&#xff0c;例如&#xff1a; cd C:\Program Files (x86)\Steam start steam://open/main 2. 通過…

RIP-AV:使用上下文感知網絡進行視網膜動脈/靜脈分割的聯合代表性實例預訓練

文章目錄 RIP-AV: Joint Representative Instance Pre-training with Context Aware Network for Retinal Artery/Vein Segmentation摘要方法實驗結果 RIP-AV: Joint Representative Instance Pre-training with Context Aware Network for Retinal Artery/Vein Segmentation …

單片機總結【GPIO/TIM/IIC/SPI/UART】

一、GPIO 1、概念 通用輸入輸出口&#xff1b;開發者可以根據自己的需求將其配置為輸入或輸出模式&#xff0c;以實現與外部設備進行數據交互、控制外部設備等功能。簡單來說&#xff0c;GPIO 就像是計算機或微控制器與外部世界溝通的 “橋梁”。 2、工作模式 工作模式性質特…

.gitignore 文件中添加忽略 .pdb 文件

我在項目的根目錄下創建.gitignore文件。打開.gitignore文件并添加忽略.pdb文件的規則。如下&#xff1a; 已經在 .gitignore 文件中添加了忽略 .pdb 文件的規則&#xff0c;但是提交到 Git 倉庫時仍然看到了 .pdb 文件&#xff0c;這通常意味著 .pdb 文件在 .gitignore 文件被…