模板继承

模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量。

典型应用:网站的头部、尾部信息。

父模板

如果发现在多个模板中某些内容相同,那就应该把这段内容定义到父模板中。

标签block:用于在父模板中预留区域,留给子模板填充差异性的内容,名字不能相同。 为了更好的可读性,建议给   endblock标签写上名字,这个名字与对应的block名字相同。父模板中也可以使用上下文中传递过来的数据。

{%block 名称%}
预留区域,可以编写默认内容,也可以没有默认内容
{%endblock  名称%}

子模板

标签extends:继承,写在子模板文件的第一行。

{% extends "父模板路径"%}

子模版不用填充父模版中的所有预留区域,如果子模版没有填充,则使用父模版定义的默认值。

填充父模板中指定名称的预留区域。

{%block 名称%}
实际填充内容
{{block.super}}用于获取父模板中block的内容
{%endblock 名称%}

HTML转义

模板对上下文传递的字符串进行输出时,会对以下字符自动转义。

小于号< 转换为 &lt;大于号> 转换为 &gt;单引号' 转换为 '双引号" 转换为 &quot;与符号& 转换为 &amp;

关闭转义

过滤器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:'&lt;h1&gt;hello&lt;/h1&gt;' }}
</body>
</html>

然后网页上就展示出

Django框架(25.Django中的模板继承以及HTML转义)相关推荐

  1. Django框架(23.Django中的模板的标签、变量、过滤器和注释)

    模板 作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器.模版致力于表达外观 ...

  2. Django框架(8.Django中的模板文件的使用和模板变量的简单使用)

    为什么使用模板 通过视图可以给用户返回一些字符串等等, 那如何向请求者返回一个漂亮的页面呢? 肯定需要用到html.css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为 ...

  3. html语言可以写模版继承吗,Django框架(十一):模板介绍、模板语言、模板继承、HTML转义...

    1. 模板介绍 1.1 模板的功能 产生html,控制页面上展示的内容.模板文件不仅仅是一个html文件. 模板文件包含两部分内容: 静态内容:css.js.html. 动态内容:用于动态去产生一些页 ...

  4. Django从理论到实战(part23)--模板继承

    学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列 ...

  5. Django框架(19.Django中获取url的参数(位置参数以及关键字参数))

    捕获url参数 进行url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数. 位置参数 位置参数,参数名可以随意指定   ...

  6. Django框架(6.django后台管理/通过后台对数据表的增删改)

    1.django项目中的admin.py  即:  后台管理相关文件 使用Django提供的相关管理机制的步骤 1.本地化 语言和时区的本地化    ( 修改项目中的settings.py的文件) 2 ...

  7. Django框架(1.Django框架的简介)

    Django简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计. 劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005 ...

  8. 在html页面中使用模板继承,HTML5下的模板继承

    标签: 应用背景: 在web项目中,我们的网站主页面除了正文是由导航条,底栏.也就是nav.html,bottom.html,在构建页面的时候,应当使用HTML的模板继承,避免代码重复和以便于代码的维 ...

  9. laravel中Blade模板继承

    Blade模板继承 和 区块 <!-- 文件保存于 resources/views/layouts/app.blade.php --><html><head>< ...

最新文章

  1. C++Poisso statistics泊松统计的实现算法(附完整源码)
  2. 疯狂ios讲义之美化iOS应用
  3. JVM难学?那是因为你没认真看完这篇文章
  4. 圆柱属于能滚动的物体吗_小学人教版六年级下册数学第3章《圆柱的表面积》知识点+同步练习...
  5. html multiply属性,multiply
  6. java实现网页结构分析列表发现
  7. Redis跳跃表源码解析
  8. Shell脚本——条件语句
  9. 深度学习平台——Paddle核心框架介绍
  10. EI会议-计算机领域
  11. exp/expdp 与 imp/impdp命令导入导出数据库详解
  12. pytorch-retinanet训练自己的数据集
  13. g4560和二代i5_奔腾g4560和i5 2500K哪个好
  14. 【直播】美团点评技术沙龙Online003: 美团点评数据库运维自动化实践与发展
  15. 计算机实验报告word结果总结,计算机网络实验报告.doc
  16. vue.js json_带有Vue.js的JSON编辑器
  17. Mac github登录不上
  18. Linux DNS服务详解——DNS实战配置
  19. element-ui 官方文档内网部署方法
  20. 微信内无法加载https网页

热门文章

  1. bilibili怎么设置弹幕数量_python爬虫:bilibili弹幕爬取+词云生成
  2. adc采样时间_ADC采样原理
  3. 18款帝豪gl车机升级_好看又实用的2018款帝豪GL分享,感受它的魅力
  4. Visual C++——Visual C++ 6.0 转 Visual Studio[Visual C++]编译错误[错误 D8016 “/ZI”和“/Gy-”命令行选项不兼容]解决方案
  5. 跨域(CORS)请求问题[No 'Access-Control-Allow-Origin' header is present on the requested resource]常见解决方案
  6. JavaScript——仿键盘打字输入动画效果DEMO
  7. eclipse文本框输出mysql全部数据_小巧轻便的数据库管理软件HeidiSQL
  8. 管能做暖气管道吗_这样的暖气管道施工,标准吗
  9. 【springboot中使用拦截器】
  10. 解决spring的xml文件cannot be open ( class path resource cannot be opened)