Django框架(25.Django中的模板继承以及HTML转义)
模板继承
模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量。
典型应用:网站的头部、尾部信息。
父模板
如果发现在多个模板中某些内容相同,那就应该把这段内容定义到父模板中。
标签block:用于在父模板中预留区域,留给子模板填充差异性的内容,名字不能相同。 为了更好的可读性,建议给 endblock标签写上名字,这个名字与对应的block名字相同。父模板中也可以使用上下文中传递过来的数据。
{%block 名称%} 预留区域,可以编写默认内容,也可以没有默认内容 {%endblock 名称%}
子模板
标签extends:继承,写在子模板文件的第一行。
{% extends "父模板路径"%}
子模版不用填充父模版中的所有预留区域,如果子模版没有填充,则使用父模版定义的默认值。
填充父模板中指定名称的预留区域。
{%block 名称%} 实际填充内容 {{block.super}}用于获取父模板中block的内容 {%endblock 名称%}
HTML转义
模板对上下文传递的字符串进行输出时,会对以下字符自动转义。
小于号< 转换为 <大于号> 转换为 >单引号' 转换为 '双引号" 转换为 "与符号& 转换为 &
关闭转义
过滤器escape可以实现对变量的html转义,默认模板就会转义,一般省略。
{{t1|escape}}
过滤器safe:禁用转义,告诉模板这个变量是安全的,可以解释执行。
{{data|safe}}
标签autoescape:设置一段代码都禁用转义,接受on、off参数。
{%autoescape off%} ... {%endautoescape%}
例如: 给页面传递一个 {'content': '<h1>hello</h1>'}
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>模板转义</title> </head> <body>html 转义:<br/>默认没有关闭转义 : {{ content }}<br/>使用safe过滤器关闭转义:{{ content|safe }}<br/>使用autoescape关闭转义:{% autoescape off %}{{ content }}{% endautoescape %}<br/>模板的硬编码,默认不会经过转义:{{ test|default:'<h2>hello<h2/>' }}<br/>手动进行转义{{ test|default:'<h1>hello</h1>' }} </body> </html>
然后网页上就展示出
Django框架(25.Django中的模板继承以及HTML转义)相关推荐
- Django框架(23.Django中的模板的标签、变量、过滤器和注释)
模板 作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器.模版致力于表达外观 ...
- Django框架(8.Django中的模板文件的使用和模板变量的简单使用)
为什么使用模板 通过视图可以给用户返回一些字符串等等, 那如何向请求者返回一个漂亮的页面呢? 肯定需要用到html.css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为 ...
- html语言可以写模版继承吗,Django框架(十一):模板介绍、模板语言、模板继承、HTML转义...
1. 模板介绍 1.1 模板的功能 产生html,控制页面上展示的内容.模板文件不仅仅是一个html文件. 模板文件包含两部分内容: 静态内容:css.js.html. 动态内容:用于动态去产生一些页 ...
- Django从理论到实战(part23)--模板继承
学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...
- Django框架(19.Django中获取url的参数(位置参数以及关键字参数))
捕获url参数 进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数. 位置参数 位置参数,参数名可以随意指定 ...
- Django框架(6.django后台管理/通过后台对数据表的增删改)
1.django项目中的admin.py 即: 后台管理相关文件 使用Django提供的相关管理机制的步骤 1.本地化 语言和时区的本地化 ( 修改项目中的settings.py的文件) 2 ...
- Django框架(1.Django框架的简介)
Django简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计. 劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005 ...
- 在html页面中使用模板继承,HTML5下的模板继承
标签: 应用背景: 在web项目中,我们的网站主页面除了正文是由导航条,底栏.也就是nav.html,bottom.html,在构建页面的时候,应当使用HTML的模板继承,避免代码重复和以便于代码的维 ...
- laravel中Blade模板继承
Blade模板继承 和 区块 <!-- 文件保存于 resources/views/layouts/app.blade.php --><html><head>< ...
最新文章
- C++Poisso statistics泊松统计的实现算法(附完整源码)
- 疯狂ios讲义之美化iOS应用
- JVM难学?那是因为你没认真看完这篇文章
- 圆柱属于能滚动的物体吗_小学人教版六年级下册数学第3章《圆柱的表面积》知识点+同步练习...
- html multiply属性,multiply
- java实现网页结构分析列表发现
- Redis跳跃表源码解析
- Shell脚本——条件语句
- 深度学习平台——Paddle核心框架介绍
- EI会议-计算机领域
- exp/expdp 与 imp/impdp命令导入导出数据库详解
- pytorch-retinanet训练自己的数据集
- g4560和二代i5_奔腾g4560和i5 2500K哪个好
- 【直播】美团点评技术沙龙Online003: 美团点评数据库运维自动化实践与发展
- 计算机实验报告word结果总结,计算机网络实验报告.doc
- vue.js json_带有Vue.js的JSON编辑器
- Mac github登录不上
- Linux DNS服务详解——DNS实战配置
- element-ui 官方文档内网部署方法
- 微信内无法加载https网页
热门文章
- bilibili怎么设置弹幕数量_python爬虫:bilibili弹幕爬取+词云生成
- adc采样时间_ADC采样原理
- 18款帝豪gl车机升级_好看又实用的2018款帝豪GL分享,感受它的魅力
- Visual C++——Visual C++ 6.0 转 Visual Studio[Visual C++]编译错误[错误	D8016	“/ZI”和“/Gy-”命令行选项不兼容]解决方案
- 跨域(CORS)请求问题[No 'Access-Control-Allow-Origin' header is present on the requested resource]常见解决方案
- JavaScript——仿键盘打字输入动画效果DEMO
- eclipse文本框输出mysql全部数据_小巧轻便的数据库管理软件HeidiSQL
- 管能做暖气管道吗_这样的暖气管道施工,标准吗
- 【springboot中使用拦截器】
- 解决spring的xml文件cannot be open ( class path resource cannot be opened)