一周学会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.mzph.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 文件被…