一、模板的组成

HTML代码+逻辑控制代码

二、逻辑控制代码的组成

1.变量(使用双大括号来引用变量)

{{ var_name }}

2.标签(tag)的使用(使用大括号和百分号的组成来表示使用tag)

{% load staticfiles %}

3.过滤器(filter)的使用

{{ ship_date|date:"F j,Y" }},ship_date变量传给date过滤器,date过滤器通过使用"F j,Y"这几个参数来格式化日期数据。 "|"代表类似Unix命令中的管道操作。

三、常用标签(tag)

1.{% if %} 的使用

可以使用and,or,not来组织逻辑,新版本中已经支持 {% elif %}

2.{% ifequal %} 和 {% ifnotequal %} 的使用

比较是否相等,只限于简单的类型,如字符串,整数,小数的比较,列表,字典,元组不支持

3.{% for %} 的使用

循环一个列表。可以使用empty关键字来进行为空时处理;可以使用resersed关键字来倒序遍历;

for标签中,可以使用forloop

{{ forloop.counter }}: 当前循环计数,从1开始

{{ forloop.counter0 }}:当前循环计数,从0开始,标准索引方式

{{ forloop.revcounter }}:当前循环的倒数计数,从列表长度开始

{{ forloop.revcounter0 }}:当前循环的倒数计数,从列表长度减1开始,标准索引方式

{{ forloop.first }}:布尔值,判断是不是循环的第一个元素

{{ forloop.last}}:布尔值,判断是不是循环的最后一个元素

4.{% cycle %}

在循环时轮流使用给定的字符串列表中的值。

5.{# #} 单行注释,{% comment %} 多行注释

6.{% csrf_token %}

生成csrf_token的标签,用于防止跨站攻击验证

7.{% debug %}

调用调试信息

8.{% filter %}

将filter标签圈定的内容执行过滤器操作

9.{% autoescape %}

自动转义设置

10.{% firstof %}

输出第一个值不等于False的变量

11.{% load %}

加载标签库

12.{% now %}

获得当前时间

13.{% spaceless %}

移除空格

14.{% url %}

引入路由配置的name的地址

15.{% verbatim %}

禁止render

16.{% with %}

用更简单的变量名缓存复杂的变量名

...

更多详见:https://docs.djangoproject.com/en/1.10/ref/templates/builtins/

四、常用过滤器(filter)

1.add

给变量加上相应的值

2.addslashes

给变量中的引号前加上斜线

3.capfirst

首字母大写

4.cut

从字符串中移除指定的字符

5.date

格式化日期字符串

{{ value|date:"D d M Y" }}

If value is a datetime object (e.g., the result of datetime.datetime.now()), the output will be the string 'Wed 09 Jan2008'.

6.default

如果值是False,就替换成设置的默认值,否则就使用本来的值

7.default_if_none

如歌值为None,就替换成设置的默认值,否则就使用本来的值

8.dictsort

按照设定参数(key)对应的value对列表进行排序

9.dictsortreversed

和上面恰好相反

10.divisibleby

是否能够被某个数字整除,是的话返回True,否则返回False

11.escape

对字符串进行转义

12.escapejs

替换value中的某些字符,以适应JAVASCRIPT和JSON格式

13.filesizeformat

格式化文件大小显示

14.first

返回列表中的第一个值

15.last

返回列表中的最后一个值

16.floatformat

格式化浮点数

17.length

求字符串或者列表长度

18.length_js

比较字符串或者列表的长度

19.urlencode

对URL进行编码处理

20.upper\lower

大写\小写

21.safe

对某个变量关闭自动转义

22.slice

切片操作

{{ some_list|slice:":2" }}

If some_list is ['a', 'b', 'c'], the output will be ['a', 'b'].

23.time

格式化时间

{{ value|time:"H:i" }}

24.timesince

格式化时间

25.truncatechars

按照字符截取字符串

{{ value|truncatechars:9 }}

If value is "Joel is a slug", the output will be "Joel i...".

26.truncatewords

按照单词截取字符串

27.striptags

过滤掉html标签

{{ value|striptags }}

If value is "<b>Joel</b> <button>is</button> a <span>slug</span>", the output will be "Joel is a slug".

标签和过滤器,更多详见:https://docs.djangoproject.com/en/1.10/ref/templates/builtins/


***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***

Django进阶Template篇001 - 常用模板标签及过滤器的更多相关文章

  1. Django进阶Template篇002 - 模板包含和继承

    包含 {% include %} 允许在模板中包含其他模板的内容. {% include "foo/bar.html" %} {% include template_name %} ...

  2. Django框架基础知识05-自定义模板标签与过滤器

    根据一定规则,自己定义出符合需求功能的.用在任何你有需求的地方,因为内置的满足不了我们的需求,不同的东西有不同的定义规则 目前最最重要的就是HOW 一 文件路径配置: templates 存放自定义 ...

  3. Django进阶Model篇001 - mysql 数据库的配置

    django 默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver之类的数据库需要第三方的支持,具体详见: https://docs.djangop ...

  4. Django-常用模板标签及过滤器

    常用模板标签及过滤器 标签和过滤器完整介绍 https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 模板的组成 HTML代码+ 逻 ...

  5. python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器

    python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...

  6. Django 笔记(四)模板标签 ~ 自定义过滤器

    模板标签: 标签在渲染的过程中提供任意的逻辑 语法: 由{% ... %} 和 {% end... %} 常用标签: with:类似取别名 模版继承: Django模版引擎中最强大也是最复杂的部分就是 ...

  7. Django(十五)模板详解:模板标签、过滤器、模板注释、模板继承、html转义

    一.模板的基础配置及使用 [参考]https://docs.djangoproject.com/zh-hans/3.0/topics/templates/ 作为Web框架,Django提供了模板,用于 ...

  8. Django 学习笔记(五)模板标签

    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...

  9. Django进阶Model篇005 - QuerySet常用的API

    django.db.models.query.QuerySet QuerySet特点: 1.可迭代 2.可切片 查询相关API 1.get(**kwargs):返回与所给的筛选条件相匹配的对象,返回结 ...

随机推荐

  1. 接口测试工具 — jmeter(数据库操作)

    1.导入jdbc jar包 2.配置MySQL连接 3.执行sql语句

  2. 一 创建github账号以及上传工程到github

    第一步:安装git. apt-get install git 第二步:配置用户名和密码: git config –global user.name “XXX” git config –global u ...

  3. sql server自动化运维脚本

    数据库运维中盛传一个小段子,我误删除了数据库,改怎么办?有备份还原备份,没有备份就准备简历!听起来有趣但发生在谁身上,谁都笑不起来.接触了很多的客户发现90%客户的运维策略都不是很完善.本篇就分享一些 ...

  4. 0503-Hystrix保护应用-feign的hystrix支持

    一.概述 1.1.基础[示例一] 如果Hystrix在类路径上并且feign.hystrix.enabled = true,Feign将用断路器包装所有方法.还可以返回com.netflix.hyst ...

  5. 关于shared pool的深入探讨(五)

    Oracle使用两种数据结构来进行shared pool的并发控制:lock 和 pin.Lock比pin具有更高的级别. Lock在handle上获得,在pin一个对象之前,必须首先获得该handl ...

  6. mysql的两种常用的引擎

    MyISAM引擎特点1.不支持事务(事务是指逻辑上的一组操作,组成这组操作的各个单元,要么全成功,要么全失败)2.表级锁定(数据更新时锁整个表):其锁定机制是表级锁定,这虽然可以让锁定的实现成本很小但 ...

  7. ASP.NET4 与 VS2010 Web 开发页面服务改进

    转:http://blog.163.com/kele_lipeng/blog/static/81345278201132754729336/ 作者:朱先忠 本文将接着上一篇 ASP.NET4与VS20 ...

  8. BZOJ 5312: 冒险

    首先我们考虑,对于And 和 Or 操作,对于操作位上只有And 0 和 Or 1 是有效果的. 我们注意到如果区间内需要改动的操作位上的数字都相同,那么是可以区间取与以及区间取或的. 那其实可以维护 ...

  9. HandlerSocket ---MySQL与NoSQL ---SQL与NoSQL的融合(转)

    项目地址:https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL 写这一篇内容的原因是MySQL5.6.2突然推出了memcached的功能 ...

  10. iOS应用内付费(IAP)开发步骤

    1.苹果iTunes Connect内购产品信息录入. 1)创建app内购买项目(Create New),选择类型: 1.消耗型项目 对于消耗型 App 内购买项目,用户每次下载时都必须进行购买.一次 ...