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程序设计有所帮助。

时间: 2019-07-30

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用法

模板引擎 说明:模板文件就是按照一定的规则书写的展示效果的HTML文件 模板引擎就是负责按照指定规则进行替换的工具 模板引擎选择jinja2 一.渲染模板的方法 1.将渲染的模板进行返回 render_template() 2.渲染字符串返回 render_templates_string() 实例 @app.route('/') def index(): #将模板内容响应给用户 return render_template('index.html') #渲染一内容响应给用户 return re

本文实例讲述了Python 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

本文实例总结了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模板引擎来实现的.模板文件存放在当前目前下的子目录templates(一定要使用这个名字)下. main.py 代码如下: from flask import Flask, render_template app = Flask(__name__) @app.route('/hello') @app.route('/hello/') def hello(name=None): return render_template('hello.html

本文实例讲述了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!!!!!" #返回给

经过了第一章的内容,已经可以做出一些简单的页面,首先用这种方式做一个登录页面,首先要创建一个login的路由方法: @app.route("/login",methods=["GET"]) def login(): html="

" \ "

请输入用户名

Jinja是组成Flask的模板引擎.可能你还不太了解它是干嘛的,但你对下面这些百分号和大括号肯定不陌生: {% block body %}

  • {% for user in users %}
  • {{ user.username }} {% endfor %}

本文实例讲述了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 #能够随时更改自动重启,不加的

本文实例讲述了flask框架json数据的拿取和返回操作.分享给大家供大家参考,具体如下: json数据结构:以套票票网站的城市数据为例,拿到数据莫慌, 1 先分析数据结构,有几个大的字段('returnCode'和'retuenValue'字段,只有一个字段作为定义,另一个字段作为保留(无需处理) 2 键表----> 拆分'returnValue'确定数据库表结构,('A'[]城市首字母表 和  城市具体信息字段{}表) 3 将拿到的数据拆分插入到数据库中 4 将数据库的数据以JSON 的形式

本文实例讲述了Flask框架路由和视图用法.分享给大家供大家参考,具体如下: 创建一个简单flask框架程序 #1.导入Flask类 from flask import Flask #2.创建Flask对象接收一个参数__name__,它会指向程序所在的包 app = Flask(__name__) #3.装饰器的作用是将路由映射到视图函数index @app.route('/') def index(): return 'Hello World' #4.Flask应用程序实例的run方法,启动

本文实例讲述了Flask框架学习笔记之消息提示与异常处理操作.分享给大家供大家参考,具体如下: flask通过flash方法来显示提示消息: from flask import Flask, flash, render_template, request, abort app = Flask(__name__) app.secret_key = '520' @app.route('/') def index(): flash("Hello loli") return render_te

本文实例讲述了flask框架渲染Jinja模板与传入模板变量操作.分享给大家供大家参考,具体如下: 1. 模板简介 模板是一个web开发中必备的模块,因为我们在渲染一个网页的时候,并不只是渲染了一个纯文本字符窜,而是渲染一个有富文本标签的页面,这个时候我们就需要用到模板了.在flask中,配套的模板是Jinja2,Jinja2的作者也是flask的作者. 2. flask中渲染模板 在flask中,如果我们需要渲染一个模板,那么我们就需要用到render_template这个方法了. 在我们新建

我们最终的视图技巧利用了一个高级python技术. 假设你发现自己在各个不同视图里重复了大量代码,就像 这个例子: def my_view1(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/accounts/login/') # ... return render_to_response('template1.html') def my_view2(request): if not r

本文实例讲述了python函数装饰器之带参数的函数和带参数的装饰器用法.分享给大家供大家参考,具体如下: 1. 函数带多个参数 # 普通的装饰器, 打印函数的运行时间 def decrator(func): def wrap(*args, **kwargs): start_time = time.time() res = func(*args, **kwargs) end_time = time.time() print('运行时间为', end_time-start_time) return

本文实例讲述了Yii框架数据库查询.增加.删除操作.分享给大家供大家参考,具体如下: Yii 数据库查询 模型代码: <?php namespace app\models; use yii\db\ActiveRecord; class Test extends ActiveRecord{ } 控制器代码: public function actionTest(){ //方法一 $sql = 'select * from test where id=:id'; $data = Test::find

本文实例讲述了Laravel框架模型的创建及模型对数据操作.分享给大家供大家参考,具体如下: 模型创建: <?php namespace App; use Illuminate\Database\Eloquent\Model; class Admin extends Model{ //指定表名 protected $table = 'wd_user'; //指定允许批量复制的字段 protected $fillable = ['username']; //指定id protected $prim

本文实例讲述了Python Django中间件,中间件函数,全局异常处理操作.分享给大家供大家参考,具体如下: 应用名/middleware.py(定义中间件类,中间件函数.文件名可以任意): from django.http import HttpResponse # 定义中间件类. (类名可以任意,但类中的方法名是固定的) class TestMiddleware(object): '''中间件类''' def __init__(self): '''服务器重启之后,接收第一个请求时调用(只会

flask html 模板继承,Flask框架模板继承实现方法分析相关推荐

  1. Axure经典案例下载(crm需求文档+web端交互组件+Axure移动端模板+管理后台框架模板)

    crm需求文档+web端交互组件+Axure移动端模板+管理后台框架模板 作品展示2 作品展示3 作品展示4 交互演示地址及下载链接 https://www.pmdaniu.com/storages/ ...

  2. flask mysql项目模板渲染_Flask框架模板渲染操作简单示例

    本文实例讲述了Flask框架模板渲染操作.分享给大家供大家参考,具体如下: from flask import render_template from flask import Flask from ...

  3. laravel 模板继承_Laravel框架模板之公共模板、继承、包含实现方法分析

    本文主要介绍了laravel框架模板之公共模板.继承.包含实现方法,结合实例形式分析了Laravel框架中公共模板的建立.模板包含.模板继承等相关操作技巧,需要的朋友可以参考下,具体如下: 简介: 利 ...

  4. python 注销一大段_Django框架用户注销功能实现方法分析

    本文实例讲述了Django框架用户注销功能实现方法.分享给大家供大家参考,具体如下: HttpResponse()里有个delete_cookie()方法专门用来删除cookie 我们到此来完整的实现 ...

  5. yii mysql_Yii2框架操作数据库的方法分析【以mysql为例】

    本文实例讲述了Yii2框架操作数据库的方法.分享给大家供大家参考,具体如下: 准备数据库 DROP TABLE IF EXISTS `pre_user`; CREATE TABLE `pre_user ...

  6. php yii路由规则,Yii框架的路由配置方法分析

    本文实例讲述了Yii框架的路由配置方法.分享给大家供大家参考,具体如下: 取消index.php 这两种方法都是在自动添加index.php 方法一:使用.htaccess 添加.htaccess文件 ...

  7. Flask学习之旅——2.6 模板继承

    Flask学习之旅--2.6 模板继承 前言 本文为<知了传课--模版继承>的学习笔记. 原文地址:第八节:模板继承 - Python框架Flask基础教程 - 知了传课 (zlkt.ne ...

  8. Flask框架——模板、数据库ORM

    文章目录 1 模板 1 重定向 1.1 什么是重定向? 1.2 为什么要有重定向? 1.3 如何使用重定向? 1.3.1 暂时性重定向(代码实例): 1.3.2 永久性重定向(代码实例) 2 jinj ...

  9. Flask 框架 - 模板 - 2

    1 学习目标 能够说出Flask中模板代码复用的三种方式 能够使用代码实现模板继承的功能 能够说出可以在模板中直接使用的 Flask 变量和函数 能够使用 Flask-WTF 扩展实现注册表单 能够说 ...

最新文章

  1. LeetCode 673. Number of Longest Increasing Subsequence--O(N log N )--Java,C++,Python解法
  2. 评分较高对鸿蒙文,万倍增幅:鸿蒙至高神,加入诸天万界群
  3. springboot 数据权限_13 个最火的 SpringBoot 实战开源项目推荐!总有一个适合你!...
  4. 鼠标的默认事件之oncontextmenu及其案例
  5. 控制系统数字仿真与CAD-第二次实验-附完整代码
  6. curl get请求传递参数_使用curl调用restful API
  7. 高级shell编程讲解
  8. wgs84坐标系拾取工具_百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换的工具...
  9. 戴尔linux恢复镜像,戴尔 SupportAssist OS Recovery 系统恢复教程
  10. C# PDF转图片(JPG,Png)
  11. 国仁网络资讯:微信视频号怎么给自己账号精准定位;账号定位又分为哪些类?
  12. python转json的函数_python将字符串转换成json的方法小结
  13. java se1.6配套Jdk,javase 1.6与jdk1.6
  14. 偏微分方程:计算基本理论
  15. mybatis笔记整理
  16. HTTPS与自制SSL证书
  17. Python爬虫抓取携程网机票信息并发邮件通知
  18. 【图像融合】基于随机游走算法实现多焦点图像融合含Matlab代码
  19. 用第三人称写日记减压
  20. 想做数据分析岗位,互联网数据分析的发展前景怎么样?

热门文章

  1. Eclipse中导入项目后页面报错org.jboss.tools.vpe.xulrunner.XulRunnerBundleNotFoundException: Bundle org.mozilla.
  2. 制造企业库存成本控制的难点
  3. 一款用于绘制状态机转换图和流程图的web在线绘图工具
  4. 中国软件工程历程与发展(来源:杨芙清院士)
  5. 中国AI研究超美国?专家:比如深度学习已发文章数
  6. GCC编译 C与C++ C89与C99
  7. 天猫精灵OAUTH2的authorize无法认证,认证参数不全,token错误的排查
  8. Kirchhoff's laws
  9. 2021年G2电站锅炉司炉最新解析及G2电站锅炉司炉模拟考试
  10. 1178 -- 笨小熊