前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django基础篇-模板标签

Django基础篇-模板标签

作者头像
小团子
发布2019-07-18 11:06:26
8130
发布2019-07-18 11:06:26
举报
文章被收录于专栏:数据云团数据云团
  • 常用标签
  • 模板标签例子
  • 模板继承与应用
  • 注释标签

①模板标签

标签在渲染的过程中提供任意的逻辑。

例如:一个标签可以输出内容,作为控制结构,“if” 语句或 "for" 循环从数据库中提取内容,甚至可以访问其它的模板标签。

Tags 是由 %} 和 {% 来定义的,例如:{% tag %} {% endtag %}

大部分标签都接受参数。

②常用标签

  1. if / elif / else :可以使用 and / or / in / not / == / != / <= / >=,来进行判断。 ifequal / ifnotequal
  2. for ... in ... :和 python 中的 for ... in ... 是一样的用法。

forloop.counter:当前迭代的次数,下标从 1 开始。

forloop.counter0:当前迭代的次数,下标从 0 开始。

forloop.revcounter:和 forloop.counter 一样,下标从大到小。

forloop.revcounter0:和 forloop.counter0 一样,下标从大到小。

forloop.first:返回 bool 类型,如果是第一次迭代,返回 true,否则返回 false。

forloop.last:返回 bool 类型,如果是最后一次迭代,返回 true,否则返回 false。

forloop.parentloop:如果发生多层 for 循环嵌套,那么这个变量返回的是上一层的 for

  • for ... in ... empty...:如果没有数据,就跳转到 empty 中。
  • load:加载第三方标签。最常用的是 {% load static %}
  • url:返回一个命名了的 URL 的绝对路径。
  • with:缓存一个变量。
  • autoescape:开启和关闭自动转义。

③模板标签例子

# index33.html

# for 的使用

# url 页面转换

# with 的使用

# autoescape 的使用

原始的:{{ html }} <br>

过滤器方式:{{ html |safe }} <br>

标签方式:

{% aotoescape off %}

{{ html }} <br>

{% endautoescape %}

③模板继承与引用

Django 模板引擎中最强大也是最复杂的部分就是模板继承了。模板继承可以让你创建一个基本的“骨架”模板,它包含你站点中的全部元素,并且可以定义能够被子模板覆盖的 block。

继承:

模板继承使用 extends 标签实现。通过使用 block 来给子模板开放接口。

  • extends 必须是模板中第一个出现的标签。

框架篇-Django博客应用-更新首页

  • 子模板中的所有内容,必须出现在父模板定义好的 block 中,否则 django 将不会渲染。
  • 如果出现重复代码,就应该考虑使用模板。
  • 尽可能多的定义 block,方便子模板实现更细的需求。
  • 如果在某个 block 中,要使用父模板的内容,使用 block.super 获取。

引用:

include 标签可以包含一个 html 模板到当前模板中。和继承不同,include 是把 html 模板在此处展开。

例如:{% include 'head.html' %}

父模板:

引用

子模板继承

④注释标签

  1. {# 被注释的内容 #}:将中间的内容注释掉,只能单行注释。
  2. { comment } 被注释的内容 { endcomment }:可以多行注释。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档