Django模板语言 Tags使用详解


Posted in Python onSeptember 09, 2019

Tags

# 普通for循环

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

for循环可用的一些参数:

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

for ... empty

# 如果user_list 里面元素为0个的时候执行 empty

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

if判断

# if,elif和else
{% if user_list %}
 用户人数:{{ user_list|length }}
{% elif black_list %}
 黑名单数:{{ black_list|length }}
{% else %}
 没有用户
{% endif %}
# 当然也可以只有if和else

{% if user_list|length > 5 %}
 七座豪华SUV
{% else %}
  黄包车
{% endif %}

# if语句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判断。

with

# 定义一个中间变量,多用于给一个复杂的变量起别名。

# 注意等号左右不要加空格。

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

# 或

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

csrf_token

这个标签用于跨站请求伪造保护。

在页面的form表单里面写上{% csrf_token %}

注意事项

Django的模板语言不支持连续判断,即不支持以下写法:

{% if a > b > c %}
...
{% endif %}

Django的模板语言中属性的优先级大于方法

def xx(request):
  d = {"a": 1, "b": 2, "c": 3, "items": "100"}
  return render(request, "xx.html", {"data": d})

如上,我们在使用render方法渲染一个页面的时候,传的字典d有一个key是items并且还有默认的 d.items() 方法,此时在模板语言中:

{{ data.items }}

默认会取d的items key的值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
优化Python代码使其加快作用域内的查找
Mar 30 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
python基础教程之Filter使用方法
Jan 17 Python
Python json 错误xx is not JSON serializable解决办法
Mar 15 Python
Python常见异常分类与处理方法
Jun 04 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
Jun 09 Python
python机器学习之神经网络实现
Oct 13 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
浅谈python之自动化运维(Paramiko)
Jan 31 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
Python中turtle库的使用实例
Sep 09 #Python
Django之路由层的实现
Sep 09 #Python
python中web框架的自定义创建
Sep 08 #Python
python web框架中实现原生分页
Sep 08 #Python
python中open函数的基本用法示例
Sep 07 #Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 #Python
利用python计算时间差(返回天数)
Sep 07 #Python
You might like
php a simple smtp class
2007/11/26 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
Python实现图片转字符画的示例
2017/08/22 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
详解Django配置优化方法
2019/11/18 Python
python tornado使用流生成图片的例子
2019/11/18 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
override和overload的区别
2016/03/09 面试题
机械专业毕业生推荐信范文
2013/11/25 职场文书
协议书范文
2015/01/27 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL