Django的模板是一个简单的文本文件,它可以生成任何文本格式(HTML、XML、CSV等),在本文开始之前先看一个Django模板的例子:

从这个例子中可以看到,模板标签可以是单独出现的,如extends标签;也可以是成对出现的,如block标签和for标签。而模板的主体就是一个HTML结构的文本文件,看到这里我想如果有过ASP, PHP开发经验的人都会感到很亲切,因为它们的语法非常相似,都是嵌入到HTML中的标记语言。

变量Variables

变量的基本用法:{{ variable }},当模板引擎遇到变量时会将变量替换为具体值。变量名可以包含字母数字和下划线,不能包含空格及其它特殊符号。句点(.)在变量中有特殊意义,如果模板引擎遇到了句点将会按照下面的顺序对其进行解释:

字典查找

查找属性和方法

查找下标元素

注意如果句点后面的变量是一个可以调用的方法的话,那么这个方法会按照空参数的方式调用,例如一个字典的iteritems方法可以在模板中用以下方式调用:

过滤器Filters

你可以使用过滤器来修改变量值的显示样式。过滤器的使用方式 {{ 变量|过滤器方法}}。过滤器可以连续使用,形式如: {{ 变量|过滤器方法1|过滤器方法2}}。

注意变量、管道符(|)和过滤器方法之间不能有空格。

某些过滤器还可以接收参数,例如:{{ bio|truncatewords:30 }},这句代码的意思是显示bio的前30个单词。

如果过滤器参数包含空格的话,参数就要用引号扩起来,例如:{{ list|join:", " }}。

Django大约提供了60个过滤器,具体介绍可以在Django官网看到:

https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#ref-templates-builtins-filters。

下面介绍几种常用的过滤器:

Default

如果变量是false或者空,显示default值:例如: {{ value|default:"nothing" }},如果value是false会在页面上显示nothing。

Length

显示一个字符串或者数组的长度,如:{{ value|length }}

Filesizeformat

将文件大小按照人类可读的形式显示,例如一个文件由123456789,那么显示成117.7 MB,语法形式:{{ value|filesizeformat }}

Add

加法运算:{{ value|add:"2" }}

这个方法会先按照数值来计算,如果失败了就直接将两个值拼接在一起,如连接两个数组。

Capfirst

首字母大写:{{ value|capfirst }}

cut

删除指定值,例如去掉字符串中的空格:{{ value|cut:" " }}

如果value是"String with spaces",那么输出"Stringwithspaces".

Date

格式化日期,该方法参数较多也很重要,请参考Django官网。

Dictsort

将一个字典按照某一字典项进行排序后返回,

例如,有一个字典users如下,包含三个人员信息:

按照人名进行排序:

显示样式:

Escape

将一个html字符串转意:

浏览器显示:

Join

拼接多个元素

标签Tags

For标签

循环执行标签内部代码,例如:

If,elif和else标签

和其它编程语言的if语句一样,当条件为真或不为空时,执行代码块,例如:

If标签中可以嵌套其它标签。

注释Comments

两种注释方式:

{# 这里是注释 #}

注释标签:

<转> django模板语言filter方法的更多相关文章

  1. Django(模板语言-自定义filter和simple_tag)

    Django(模板语言-自定义filter和simple_tag)   filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. ...

  2. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  3. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  4. Django——模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  5. Django 模板语言 路由 视图

    . 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...

  6. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  7. Django模板语言与视图(view)

    常用语法 {{  }}和{% %} 变量相关的用{{}} , 逻辑相关的用{% %} 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后 ...

  8. 10:django 模板语言

    Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个 ...

  9. Django模板语言,标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

随机推荐

  1. Project Browser & Inspector

    [Project Browser] You can drag items from the project structure list to the Favourites and also save ...

  2. Express+MySQL

    初识NodeJS服务端开发(Express+MySQL) http://www.tuicool.com/articles/JfqYN3I 浅析node连接数据库(express+mysql) http ...

  3. fhq-treap模板

    模板保存. #include<iostream> #include<cstdio> #include<cstring> #include<ctime> ...

  4. [bzoj3223]文艺平衡树(splay区间反转模板)

    解题关键:splay模板题. #include<cstdio> #include<cstring> #include<algorithm> #include< ...

  5. 【bzoj1455】罗马游戏

    1455: 罗马游戏 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1061  Solved: 439[Submit][Status][Discuss] ...

  6. php中不借助IDE快速定位行数或者方法定义的文件和位置

    借助了ReflectionMethod的一些特性,可以快速获得函数或者方法是在哪个文件的什么位置定义的,对于调试没有文档的程序来说很有帮助! ---------------- function fun ...

  7. Angular问题04 模块导入错误???、BrowserModule模块重复加载???、material模块引入后报错

    1 模块导入错误 1.1 问题描述 项目启动时报错:元数据错误,错误截图如下: 1.2 问题原因 利用VsCode开发angular项目时利用自动导入出现错误 坑01:VsCode 的自动导入功能比较 ...

  8. Docker学习笔记_使用Dockerfile创建flask的一个镜像

    一.实验环境 1.宿主机OS:Win10 64位 2 .虚拟机OS:Ubuntu18.04 64位    虚拟机名称:Ubuntu18VM1   虚拟机IP:192.168.8.25 3.账号:doc ...

  9. Solidity payable 方法表现

    pragma solidity ^; contract Person { string public name; uint age; uint private weight; string inter ...

  10. HTTP请求:POST和GET的差异

    1,一般情况下应用目的不同:GET是从服务器上获取数据,POST是向服务器传送数据. 2,将数据提交到服务器的方式不同:GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各 ...