for

 <ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% endfor %}
</ul>

【参数】

Variable Description
forloop.counter 当前循环的索引值(从1开始)
forloop.counter0 当前循环的索引值(从0开始)
forloop.revcounter 当前循环的倒序索引值(到1结束)
forloop.revcounter0 当前循环的倒序索引值(到0结束)
forloop.first 当前循环是不是第一次循环(布尔值)
forloop.last 当前循环是不是最后一次循环(布尔值)
forloop.parentloop 本层循环的外层循环

for ... empty

如果for循环的参数-列表为空,将执行empty里面的内容

 <ul>
{% for user in user_list %}
<li>{{ user.name }}</li>
{% empty %}
<li>空空如也</li>
{% endfor %}
</ul>

if,elif和else

 {% if user_list %}
满足条件一:{{ user_list|length }}
{% elif black_list %}
满足条件而:{{ black_list|length }}
{% else %}
剩下的所有
{% endif %}

【注意】

  • 支持 and or not,且and和or可以联用。但and的优先级高于or

  • if标签中不允许使用 () ,可以依靠嵌套if来实现

  • if标签中的条件判断语句有 == , != , > , < , >= , <= , in , not in , is , not is 。 is和not is是django1.10中的新特性。

  • 不支持连续判断

  • if标签中可以使用过滤器

  • if标签衍生出了ifequal和ifnotequal,{% ifequal a b %} 等于 {% if a==b %}

ifchange

检查循环中的某个值在最近一次循环时是否改变。可以使用 else 标签。用法有两个:

  • 它会把要渲染的内容与前一次作比较,发生变化时才显示它。

  • 如果给的是一个或者多个变量,就会检查其中任一个变量是否发生改变。

with

定义一个中间变量,用更简单的变量名代替复杂的变量名

{% with total=business.employees.count %}
{{ total }} employee{{ total|pluralize }}
{% endwith %}

csrf_token

跨站请求伪造保护,可以在页面的form表单里面写上{% csrf_token %;django为用户实现防止跨站请求伪造的功能,在全局模式下通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成; ​ 还可以使用局部方式进行限制:@csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件;与之对应的@csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件。使用局部模式时需要导入from django.views.decorators.csrf import csrf_exempt,csrf_protect

原理

当用post提交数据的时候,django会去检查是否有一个csrf的随机字符串,如果没有就会报错,这也是之前我们一直将中间件注释的原因

给from表单添加{%csrf_token%}
 <form action="" method="post">
{% csrf_token %}
<input type="text" name="name">
<button>提交</button>
</form>

执行后效果:

widthratio

计算给定值与最大值的比率,然后将该比率当作一个常量进行操作

 模板
{% widthratio this_value max_value max_width as width %}

可以用来进行乘除运算
# 乘法
{% widthratio 5 1 100 %} # 5/1*100 = 500
# 除法
{% widthratio 6 2 1 %} # 6/2*1

Django模板系统-标签Tags的更多相关文章

  1. django模板系统基础

    模板系统基础Django模板是一个string文本,它用来分离一个文档的展现和数据 模板定义了placeholder和表示多种逻辑的tags来规定文档如何展现 通常模板用来输出HTML,但是Djang ...

  2. Django 模板系统

    Django模板系统 常用语法 {{}} 变量相关 {%%} 逻辑相关 变量 格式 {{ 变量名 }} 命名规则 包括任何字母数字以及下划线 ("_")的组合 变量名称中不能有空格 ...

  3. Python学习(二十八)—— Django模板系统

    转载自http://www.cnblogs.com/liwenzhou/p/7931828.html Django模板系统 官方文档 一.常用语法 只需要记两种特殊符号: {{  }}和 {% %} ...

  4. Django模板系统(非常详细)(后台数据如何展示在前台)

    前面的章节我们看到如何在视图中返回HTML,但是HTML是硬编码在Python代码中的这会导致几个问题:1,显然,任何页面的改动会牵扯到Python代码的改动网站的设计改动会比Python代码改动更频 ...

  5. (转)Django学习之 第四章:Django模板系统

    前面的章节我们看到如何在视图中返回HTML,但是HTML是硬编码在Python代码中的 这会导致几个问题: 1.显然,任何页面的改动会牵扯到Python代码的改动 网站的设计改动会比Python代码改 ...

  6. python MVC、MTV 框架介绍 Django 模板系统常用语法

    Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...

  7. Django模板语言 标签整理

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

  8. django模板系统(上)

    filters 过滤 default 替代作用 filesizeformat 格式化为人类可读 add 给变量加参数 lower 小写 upper 大写 title 标题 ljust 左对齐 rjus ...

  9. python终极篇 ---django 模板系统

                                                模板系统                                                . MV ...

随机推荐

  1. Linux根目录下各目录文件类型及各项缩写全称

    bin(binary) :常见linux命令.系统所有用户命令目录文件dev(device) : 设备驱动存储目录文件media: 多媒体及挂载目录proc (process):进程信息文件sbin( ...

  2. JavaScript 中 console 的用法 -------------------引用

    1.在调试 JS 代码时,很多人倾向于使用 alert() 或者 console.log() 方法来输出信息,正如某些 Java 程序员喜欢在调试代码时使用System.out.println() 输 ...

  3. django环境配置(基于命令行安装)

    一.django简介 Python服务端开发框架,Django是一个开放源代码的Web应用框架,由Python写成,Django采用了MVC的软件设计模式,即模型M,视图V和控制器C 二.安装配置dj ...

  4. hdu 5773 最长递增子序列 (nlogn)+贪心

    The All-purpose Zero Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  5. flask框架(二):简单的登录demo

    一:main.py # -*- coding: utf-8 -*- # @Author : Felix Wang # @time : 2018/7/3 22:58 from flask import ...

  6. webpack4 单入口文件配置 多入口文件配置 以及常用的配置

    单入口文件配置 webpack.config.js const path = require('path'); const HtmlWebpackPlugin = require('html-webp ...

  7. $\LaTeX$数学公式大全5

    $5\ Variable-sized\ symbols(displayed\ formulae\ show\ larger\ version)$$\sum$ \sum$\prod$ \prod$\co ...

  8. RabbitMQ MQTT协议和AMQP协议

    RabbitMQ MQTT协议和AMQP协议 1        序言... 1 1.1     RabbitMq结构... 1 1.2     RabbitMq消息接收... 4 1.3     Ex ...

  9. Joda-DateTime Date 与 String 相互转换

    [参考文章]:Joda-Time 的 DateTimeFormat 问题 public class DateFormatUtils { /** HH 必须大写 */ public static fin ...

  10. Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it has already been disposed.

    2019-07-24 11:09:15.231+08:00 LISA.Common.Utilities.LogUtil - System.ObjectDisposedException: Instan ...