最新要闻

广告

手机

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

家电

世界新动态:自学Python之路-django模板--模板继承

来源:博客园


(资料图片)

点击返回 自学Python之路-Diang

1 Django模板介绍

  • 模板用于快速生成HTML动态页面返回给客户端,模板是一个文本,用于分离文档的表现形式和内容。
  • 模板定义了占位符以及各种用于规范文档该如何显示的模板标签。
  • 模板通常用于产生HTML,但是Django的模板也能产生任何基于文本格式的文档。
  • 模板包含两个部分:HTML代码和模板标签
  • 一个项目可以有一个或者是多个模板引擎,Django里面主要两个模板引擎:DTL、Jinja2。

2 Django模板的位置

  • 第一种在应用中建立templates目录,好处不需要注册,不好的地方,有多个应用的时候不能复用页面
  • 第二种是放在工程的目录下,好处是如果有多个应用,可以调用相同的页面,需要注

在整个网站中,如何减少共用页面区域(比如站点导航)所引起的重复和冗余代码?Django 解决此类问题的首选法是使一种优雅的策略—— 模板继承 。

本质上来说,模板继承就是先构造一个基础框架模板,然后在其子模板中对它所包含站点公⽤部分和定义块进行重载。

  • {% extends %} 继承父模板
  • {% block %} 子模板可以重载这部分内容。
  • {{ block.super }}调用父模板的代码

使用继承的一种常见方式是下面的三层法:

  • 创建base.html模板,在其中定义站点的主要外观感受。这些都是不常修改甚从不修改的部分。
  • 为每种类型的页面创建独立的模板,例如论坛页面或者图片库。这些模板拓展相应的区域模板。
  • 自己的页面继承自模板,覆盖父模板中指定block

注意事项:

  • 如果在模板中使用 {% extends %} ,必须保证其为模板中的第一个模板标记。否则,模板继承将不起作 用。
  • 一般来说,基础模板中的 {% block %} 标签越多越好。如果发觉自己在多个模板之间有重复代码,你应该考虑将该代码放置到父模板的某个 {% block %} 中。
  • 不在同一个模板中定义多个同名的 {% block %} 。
  • 多数情况下, {% extends %} 的参数应该是字符,但是如果直到运行时方能确定父模板名称,这个参数也可以是个变量。

.......

关键词: