Flask框架模板继承实现方法分析
本文实例讲述了Flask框架模板继承实现方法。分享给大家供大家参考,具体如下:
在模板中,可能会遇到以下情况:
- 多个模板具有完全相同的顶部和底部内容
- 多个模板中具有相同的模板代码内容,但是内容中部分值不一样
- 多个模板中具有完全相同的 html 代码块内容
像遇到这种情况,可以使用 JinJa2 模板中的 继承 来进行实现
模板继承是为了重用模板中的公共内容。一般Web开发中,继承主要使用在网站的顶部菜单、底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写。
- 标签定义的内容
{% block top %} {% endblock %}
- 相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充。
- 子模板使用 extends 指令声明这个模板继承自哪个模板
- 父模板中定义的块在子模板中被重新定义,在子模板中调用父模板的内容可以使用super()
父模板代码:
base.html
{% block top %} 顶部菜单 {% endblock top %} {% block content %} {% endblock content %} {% block bottom %} 底部 {% endblock bottom %}
子模板代码:
- extends指令声明这个模板继承自哪
{% extends 'base.html' %} {% block content %} 需要填充的内容 {% endblock content %}
模板继承使用时注意点:
- 不支持多继承
- 为了便于阅读,在子模板中使用extends时,尽量写在模板的第一行。
- 不能在一个模板文件中定义多个相同名字的block标签。
- 当在页面中使用多个block标签时,建议给结束标签起个名字,当多个block嵌套时,阅读性更好。
希望本文所述对大家基于flask框架的Python程序设计有所帮助。
相关推荐
-
Flask框架Jinjia模板常用语法总结
本文实例总结了Flask框架Jinjia模板常用语法.分享给大家供大家参考,具体如下: 1. 变量表示 {{ argv }} 2. 赋值操作 {% set links = [ ('home',url_for('.home')), ('service',url_for('.service')), ('about',url_for('.about')), ] %} 3. if判断 {% if not loop.first %}|{% endif %} 4. for 循环 {% for label,l
-
Flask模板引擎之Jinja2语法介绍
Jinja是组成Flask的模板引擎.可能你还不太了解它是干嘛的,但你对下面这些百分号和大括号肯定不陌生: {% block body %} <ul> {% for user in users %} <li><a href="{{ user.url }}" rel="external nofollow" >{{ user.username }}</a></li> {% endfor %} </ul&g
-
Python Flask框架模板操作实例分析
本文实例讲述了Python Flask框架模板操作.分享给大家供大家参考,具体如下: 模板 在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求.实际上,视图函数有两个作用:处理业务逻辑和返回响应内容.在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本.本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容. 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体值需要从使用的数据中获取.使用真实值替换变量,再返
-
Python的Flask框架中的Jinja2模板引擎学习教程
Flask的模板功能是基于Jinja2模板引擎来实现的.模板文件存放在当前目前下的子目录templates(一定要使用这个名字)下. main.py 代码如下: from flask import Flask, render_template app = Flask(__name__) @app.route('/hello') @app.route('/hello/<name>') def hello(name=None): return render_template('hello.html
-
flask框架视图函数用法示例
本文实例讲述了flask框架视图函数用法.分享给大家供大家参考,具体如下: flask框架 视图函数当中 各种实用情况简单配置 1 建立连接 2 路由参数 3 返回网络状态码 4 自定义错误页面 5 重定向 6 正则url限制 和 url 优化 7 设置和获取cookie #coding:utf8 # 导入flask from flask import Flask,abort,redirect,make_response,request from werkzeug.routing import
-
Python的Flask框架标配模板引擎Jinja2的使用教程
Jinja2需要Python2.4以上的版本. 安装 按照Jinja有多种方式,你可以根据需要选择不同的按照方式. 使用easy_install 或pip: #sudo easy_install Jinja2 #sudo pip install Jinja2 这两个工具可以自动从网站上下载Jinja,并安装到python目录的site-packages目录中. 从tar包安装: # 下载Jinja的安装包 # 解压缩 # sudo python setup.py install 基本API用法
-
Flask框架模板渲染操作简单示例
本文实例讲述了Flask框架模板渲染操作.分享给大家供大家参考,具体如下: from flask import render_template from flask import Flask from flask import Markup from flask import abort, redirect app = Flask(__name__) @app.route('/') def hello_site(): return "welcome my site!!!!!" #返回给
-
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
经过了第一章的内容,已经可以做出一些简单的页面,首先用这种方式做一个登录页面,首先要创建一个login的路由方法: @app.route("/login",methods=["GET"]) def login(): html="<form method='post'>" \ "<table>" \ "<tr><td>请输入用户名</td><td>
-
详解flask入门模板引擎
模板引擎 说明:模板文件就是按照一定的规则书写的展示效果的HTML文件 模板引擎就是负责按照指定规则进行替换的工具 模板引擎选择jinja2 一.渲染模板的方法 1.将渲染的模板进行返回 render_template() 2.渲染字符串返回 render_templates_string() 实例 @app.route('/') def index(): #将模板内容响应给用户 return render_template('index.html') #渲染一内容响应给用户 return re
-
Flask框架实现给视图函数增加装饰器操作示例
本文实例讲述了Flask框架实现给视图函数增加装饰器操作.分享给大家供大家参考,具体如下: 在@app.route的情况下增加装饰器的写法: from flask import Flask,request,render_template,redirect,session,url_for,views from flask import render_template app = Flask(__name__) #实例化flask对象 app.debug = True #能够随时更改自动重启,不加的
随机推荐
- JS实多级联动下拉菜单类,简单实现省市区联动菜单!
- 在jQuery ajax中按钮button和submit的区别分析
- JQuery AJAX提交中文乱码的解决方案
- linux下php加装mssql模块的方法
- Shell中创建序列和数组(list、array)的方法
- Java数据导入功能之读取Excel文件实例
- ASP.NET使用HttpWebRequest读取远程网页源代码
- Nodejs实现多人同时在线移动鼠标的小游戏分享
- 利用jQuery中的ajax分页实现代码
- 页面加载完毕后滚动条自动滚动一定位置
- php中如何使对象可以像数组一样进行foreach循环
- jquery实现表单获取短信验证码代码
- jQuery队列控制方法详解queue()/dequeue()/clearQueue()
- JS与jQuery遍历Table所有单元格内容的方法
- bootstrap弹出层的多种触发方式
- 浅谈SpringBoot优化技巧
- JS中setTimeout和setInterval的最大延时值详解
- PHP自定义函数判断是否为Get、Post及Ajax提交的方法
- C#中yield return用法分析
- 使用ajax的post同步执行(实现方法)