Python Flask 简明教程(8)--模板之继承

简介: 本文目录1. 前言2. 创建项目3. 创建基模板4. 继承模板5. 开发app.py6. 小结

1. 前言

静态网页的内容是静态的,所以如果有像导航栏这种每个页面都需要的固定内容,也还是不得不在每个页面编写一遍。


这除了会导致代码非常臃肿,还会让修改变得很繁琐,如果想修改导航中的一个链接,也不得不修改所有包含导航的页面。


使用动态网页技术中的模板,可以轻松的解决这个问题,FLask的模板继承在解决这个问题上更是非常的简洁。


2. 创建项目

首先创建flask-temp文件夹,用于演示模板继承功能。


在flask-temp下建立templates文件,用于存放网页,flask会自动识别该目录下的网页及网页模板。


3. 创建基模板

基模板页面用于提取网页中的公共部分,并设定好预留的自定义内容的位置。我们在templates目录下新建base.html代码如下:


<!DOCTYPE html>

<html>


<head>

   <meta charset="utf-8">

   <!--预留插入标题位置-->

   <title>

       {% block title %}

       {% endblock %}

   </title>

</head>


<body>

   <!--导航,内容固定-->

   <ul>

       <li>

           <a href="#">首页</a>

           <a href="#">新闻中心</a>

           <a href="#">产品中心</a>

           <a href="#">联系我们</a>

       </li>

   </ul>

   <!--预留插入网页内容部分-->

   {% block content %}

   {% endblock %}

</body>


</html>


解释下,除了{%%}包裹的部分,都是固定的内容;而{%%}包裹的部分,是预留的插入位置,也就是说其他页面继承了基模板页面后,会继承固定内容,只需要完善预留的插入位置即可。


4. 继承模板

接下来,我们可以开发一个新闻中心页面news.html,通过继承base.html来自动生成固定部分,我们仅仅需要在news.html中完善预留插入位置的内容。


{% extends 'base.html' %}

<!--插入到block title位置-->

{% block title %}

新闻中心

{% endblock %}

<!--插入到block content-->

{% block content %}

<h1>新闻中心</h1>

<p>

   这里是新闻中心页面

</p>

{% endblock %}


5. 开发app.py

在flask-demo文件夹下新建app.py,并编写代码如下:


from flask import Flask, render_template

app = Flask(__name__)



@app.route('/news')

def news():

   return render_template('news.html')



if __name__ == '__main__':

   app.run(debug=True)


所以当项目启动后,访问/news路径,即可访问到news.html网页,而该网页继承了base.html,所以python即可根据模板继承的规则渲染news.html然后返回给浏览器。


浏览`http://127.0.0.1:5000/news’,效果如下,可见固定部分已经继承成功!



6. 小结

在JSP、ASP.NET中,均有相关的模板继承复用的机制,但是Flask的实现可以说足够简单了。


上手简单,易用,强烈推荐!

相关文章
|
5月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
877 19
|
4月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
212 1
|
5月前
|
数据采集 存储 JSON
使用Python获取1688商品详情的教程
本教程介绍如何使用Python爬取1688商品详情信息,涵盖环境配置、代码编写、数据处理及合法合规注意事项,助你快速掌握商品数据抓取与保存技巧。
|
6月前
|
并行计算 算法 Java
Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
Python解释器不止CPython,还包括PyPy、MicroPython、GraalVM等,各具特色,适用于不同场景。本文深入解析Python解释器的工作原理、内存管理机制、GIL限制及其优化策略,并介绍性能调优工具链及未来发展方向,助力开发者提升Python应用性能。
418 0
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
791 86
|
JSON API 数据格式
使用Python和Flask构建简单的Web API
使用Python和Flask构建简单的Web API
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
919 2
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
736 2
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
构建RESTful APIs:使用Python和Flask
200 1
|
前端开发 计算机视觉 Python
flask+python 实时视频流输出到前台
该文章介绍了如何使用Flask和Python实现实时视频流输出到网页前端,包括后端通过OpenCV捕获摄像头视频流、处理并编码为JPEG格式,然后以HTTP响应的形式发送给前端显示的完整示例代码和运行效果。
flask+python 实时视频流输出到前台

推荐镜像

更多