一周学会Flask3 Python Web开发-Jinja2模板继承和include标签使用

news/2025/2/27 7:15:00

锋哥原创的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.niftyadmin.cn/n/5869698.html

相关文章

策略模式环境类的实现方式对比

文章目录 1、策略模式2、聚合策略类实现方式一3、聚合策略类实现方式二4、对比5、补充&#xff1a;ApplicationContextAware接口 1、策略模式 近期工作中&#xff0c;需要处理4.x和5.x两个版本的数据&#xff0c;所以自然想到的是策略模式&#xff0c;写一个抽象类&#xff0c…

DeepSeek-R1的一些影响

DeepSeek-R1火爆全球&#xff0c;肯定不仅仅是开源了一篇论文、一个模型那么简单&#xff0c;更多的是其带来的一些影响&#xff0c;这里简单聊聊。 跳出大模型固有开发范式 NLP&大模型技术发展历程大致如下&#xff1a; 规则方法统计学习方法深度学习方法深度学习预训练…

智慧城市招标进入“资质严审期”!谁主数字孪生技术话语权?

2025年1月&#xff0c;《全国统一大市场建设指引》明确要求招标项目需杜绝“逐利性执法”&#xff0c;技术资质审查更趋透明化。与此同时&#xff0c;住建部《危险性较大的分部分项工程专项施工方案严重缺陷清单》将数字孪生平台的数据治理能力纳入工程验收标准。在此背景下&am…

记录Liunx安装Jenkins时的Package ‘jenkins‘ has no installation candidate

1、确保是否安装了Java&#xff0c;如果没有&#xff0c;可通过以下命令进行安装&#xff1a; sudo apt update sudo apt install openjdk-21-jre2、安装Jenkins sudo apt update sudo apt install jenkins执行sudo apt install jenkins时&#xff0c;可能会出现 意思是&…

C语言-6.数据类型

目录 6.1数据类型6.1.1数据类型:C语言有哪些是基础数据类型,sizeof可以做什么6.1.2数据类型:除了int,还有多少整数类型6.1.3整数的内部表达式:整数是如何表达的,尤其是负数如何表达的6.1.4整数的范围:如何推断整数类型所能表达的范围,越界了会咋样6.1.5整数的格式化:如…

flask 是如何分发请求的?

这篇博客会涉及一些 WSGI 的知识&#xff0c;不了解的可以看这篇博客&#xff0c;简单了解一下。 Python 的 WSGI 简单入门 一、请求在 flask 中的处理过程 我们先来看一下 werkzeug.routing 包下 Map 和 Rule 方法的使用&#xff0c;这里给出一个官方的示例&#xff08;我进…

构建逻辑思维链(CoT)为金融AI消除幻觉(保险理赔篇)

在上一篇文章中&#xff0c;我们介绍了如何利用亚马逊云科技的Amazon Bedrock GuardRails自动推理检查为金融行业的AI应用提升准确性&#xff0c;消除幻觉。在本案例中&#xff0c;我们将探讨一个利用AI副主保险公司评估长期护理保险理赔审核的场景。 自动推理检查配置 在本方…

Zama fhEVM应用:摩根大通旗下 Kinexys 发布概念验证

1. 引言 Zama 全同态加密 (FHE) 技术在摩根大通的 Kinexys&#xff08;以前称为 Onyx&#xff09;中成功进行了概念验证。该概念验证是“EPIC 项目&#xff1a;通过链上企业隐私、身份和可组合性推动代币化金融”的一部分&#xff0c;在 Kinexys 数字资产沙盒&#xff08;以前…