Django模板语言 Tags使用详解

作者:信奉上帝的小和尚 时间:2022-09-27 23:37:35 

Tags


# 普通for循环

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

for循环可用的一些参数:

VariableDescription
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的值。

来源:https://www.cnblogs.com/wtil/p/11488523.html

标签:django,模板,语言,tags
0
投稿

猜你喜欢

  • SQLserver中字符串查找功能patindex和charindex的区别

    2012-06-06 20:20:42
  • Python光学仿真之对光的干涉理解学习

    2021-05-24 04:47:52
  • Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法

    2021-04-20 20:01:17
  • 简单的Vue SSR的示例代码

    2023-07-02 17:08:46
  • 用Python分析3天破10亿的《我不是药神》到底神在哪?

    2023-04-29 06:16:26
  • Jquery作者John Resig自己封装的javascript 常用函数

    2023-09-11 13:14:16
  • getAllResponseHeaders获取网页的http头信息代码

    2010-03-31 14:31:00
  • Golang中Interface接口的三个特性

    2024-04-23 09:35:46
  • pycharm实现猜数游戏

    2023-01-14 19:04:49
  • 两个JS之间的函数互相调用方式

    2024-04-10 10:39:45
  • vue-router3.0版本中 router.push 不能刷新页面的问题

    2024-04-30 10:44:34
  • python数据拟合之scipy.optimize.curve_fit解读

    2021-05-27 01:48:49
  • JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)

    2024-04-25 13:09:00
  • Mac系统重置PostgreSQL密码的方法示例代码

    2024-01-28 13:46:30
  • Python sklearn 中的 make_blobs() 函数示例详解

    2022-07-24 21:45:48
  • MySQL两种表存储结构性能比较测试过程

    2007-12-09 12:45:00
  • 解决vue.js在编写过程中出现空格不规范报错的问题

    2024-04-27 16:18:05
  • 三种SQL分页法

    2010-05-07 11:03:00
  • Go语言开发中redis的使用详解

    2024-02-14 12:58:27
  • javascript 读取图片文件的大小

    2024-04-17 10:40:11
  • asp之家 网络编程 m.aspxhome.com