flask中jinjia2模板引擎的使用详解3
接上文
模板继承
Jinji2中的模板继承是jinjia2比较强大的功能之一。
模板继承可以定义一个父级公共的模板,把同一类的模板框架定义出来共享。
这样做一方面可以提取共享代码,减少代码冗余和重复的工作量
另一方面,对于后期的维护和管理也非常方便。
一个根模板(或叫基模板)主要有三部分组成:
一是公共的js,css等资源文件的引用,
二是定义好一个布局框架,
三是定义子模板可以重写的部分(block)
下面我们以一个例子来说明模板继承的使用方法
1. 创建一个基模板
选中templates文件夹,右键选择新建->HTML文件
在弹出的窗口中输入要创建的文件名:base.html,
点击确定
然后把下面的代码copy到base.html中
<!DOCTYPE PUBLIC > <> <> <><{{ (,=) }}/>{% %}<>{% %}{% %} - My Webpage</>{% %} </> <><>{% %}{% %}</><>{% %}Copyright 2018{% %}</> </>
在这个基模板中,可以看到定义了4个block,每个个block就是告诉子模板,可以重写这些block中的内容
在同一个模板中不能定义同名的block
注意在static文件夹中添加style.css文件:
Style.css文件中只有一行代码:
{:; }
2. 创建一个子模板
用同样的方法在template下面创建一个sub.html文件,代码如下
{% %} {% %}Index{% %} {% %}{{ () }}<>.{ : ; }</> {% %} {% %}<>Index</><>Welcome on my awesome homepage.</> {% %}
可以看到这个子模板用extends方法继承了base.html模板,然后又重写了 title, head, content三个block中的内容
一个模板中不能出现重复名称的block块
其中的supper()用来调用父级模板中的block块内容,在本例中,supper()会把父级的head块内容写到子模板中
3. 定义route
在code.py文件中添加sub.html的route定义
@app.route() renderSub():render_template()
运行效果
如果想多次调用一个block块,可以使用self.block块名称进行调用,比如,我们把<h1>Index</h1>这里替换成<h1>{{self.title()}}</h1>
运行效果:
本文源码地址:链接:https://pan.baidu.com/s/1eLtPlL4wyV4tu6TJCzj2rw 密码:dpo2
转载于:https://blog.51cto.com/12482328/2083222
flask中jinjia2模板引擎的使用详解3相关推荐
- flask中jinjia2模板引擎详解3
接上文 模板继承 Jinji2中的模板继承是jinjia2比较强大的功能之一. 模板继承可以定义一个父级公共的模板,把同一类的模板框架定义出来共享. 这样做一方面可以提取共享代码,减少代码冗余和重复的 ...
- flask中jinjia2模板引擎使用详解5
接上文 宏 可以理解为函数,即把一些常用的模板片段做好封装,以便于重用,减少工作量和维护难度. 宏的定义很简单: {%macro xxx()%} ##这里写内容 {%endmacro%} 下面引用官方 ...
- spring boot模板引擎thymleaf用法详解
spring boot模板引擎thymleaf用法详解 Spring-boot支持FreeMarker.Thymeleaf.jsp.veocity 但是对freemarker和thymeleaf的支持 ...
- Javascript模板引擎mustache.js详解
进阶之路在于日积月累, 每天进步一点点-加油~ mustache.js是一个简单强大的Javascript模板引擎,使用它可以简化在js代码中的html编写,压缩后只有9KB,非常值得在项目中使用. ...
- php模板缓存_Smarty模板引擎缓存机制详解
本文实例讲述了Smarty模板引擎缓存机制.分享给大家供大家参考,具体如下: 首先说下smarty缓存和编译,这是两个不同的概念,编译默认情况下是启动的,而缓存机制需要人为开启,smarty编译过的文 ...
- python web开发-flask中response,cookies,session对象使用详解
Response响应对象: 当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式 如果返回的是一个合法的响应对象,它会从 ...
- Jinjia2模板引擎学习笔记
Jinjia2 模板引擎 形式最简单的Jinjia2模板引擎就是一个包含响应文本的文件. 1渲染模板 默认情况下,flask在应用中的templates子目录里面寻找模板. flask提供的rende ...
- Node 03--在Node中使用模板引擎进行渲染
使用readdir获取指定路径下的所有文件名 文件结构 实现代码 const fs = require('fs');fs.readdir('G:/pink_code/Node_Study/02',(e ...
- ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签
ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的: 标签类型 描述 普通标签 ...
- yii mysql 事务处理_Yii2中事务的使用实例代码详解
前言 一般我们做业务逻辑,都不会仅仅关联一个数据表,所以,会面临事务问题. 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全 ...
最新文章
- hive 中文comment乱码解决
- 突然Windows系统声音没有,怎么修复?
- Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)
- mac navicat premium 使用技巧
- leetcode221 Maximal Square
- postgreSql 常用操作总结
- UIAlertView UIActionSheet随笔笔记
- beta:scrum5
- Photoshop修复和合成梦幻人物
- TikTok欧洲首个数据中心将建在爱尔兰 投资5亿美元
- Google Chrome 谷歌浏览器历史版本下载
- 安全测试简历项目经验怎么写?
- 开启微信悬浮窗权限有什么用_这个功能比微信自带的还好用
- 老牌安全公司CYBER ARK眼中的RPA部署安全问题
- 网易云音乐登录信息加密算法详解
- C语言写一个猜数字游戏?我只想玩王者荣耀
- java-net-php-python-jsp网上拍卖系统计算机毕业设计程序
- Hadoop文件系统
- 有道词典_每日一句_2019/09
- 智子观测宣布和数榜签约合作,强化大数据采集技术