Django 笔记一
Django模板标签
- 变量
模板语法:
view {“HTML变量名”:“views变量名”}
HTML {{ 变量名 }}
- 过滤器
模板语法:
{{ 变量名|过滤器:可选参数 }}
模板过滤器可以在变量被显示前修改它,过滤器使用管道字符
{{ name|lower }} {{ name }} 变量被过滤器lower处理后,文档大写转换文本小写
{{ my_list|first|upper }} 将my_list内容第一个元素将其转换为大写
{{ bio |truncatewords: "30" }} 过滤器的参数跟随冒号之后并且总是以双引号包含;这个将显示变量bio的前30个词
常用方法
default 为变量提供一个默认值
如果views传的变量的布尔值是false,则使用指定的默认值。以下值为false 0 0.0 False 0j "" [] () set() {} None
{{ name|default:"百度" }}
length 返回对象的长度,适用于字符串和列表
字典返回的是键值对的数量,集合返回的是去重之后的长度
{{ name|length }}
filesizeformat 以易读的方式显示文件的大小,字典返回的是键值对的数量,集合则返回去重的长度
{{ num|filesizeformat }}
date 根据给定格式对一个日期变量进行格式化
格式 Y-m-d H:i:s 返回年-月-日 小时:分钟:秒的格式时间
{{ time|date: "Y-m-d"}}
truncatechars 如果字符串包含的字符总个数多于指定的字符数量,那么会被截掉后面的部分,截断的字符串将以...结尾
{{ views_str|truncatechars:2}}
if/else 标签 根据条件判断是否输出,if/else支持嵌套
基本语法格式
{% if condition %}
...
{% endif %}
或者
{% if condition1 %}
...
{% elif condition2 %}
...
{% else %}
...
{% endif %}
{% if %}标签接受逻辑运算 and、or、not关键字来对多个条件做判断。
{% if athlete_list and coach_list %}
athletes 和 coaches变量都是可用的
{% endif %}
**for ** 标签
{% for %} 允许我们在一个序列上迭代,于python的for语句的情形类似,循环语法是 for X in Y, Y是可迭代对象,而X是每一个待定的循环中使用的变量名称,每一次循环中,模板系统会渲染 {% for %} 和 {% endfor %}之间的所有内容;for 也支持嵌套。
{% for athlete in athlete_list %}
{{ athlete }}
{% endfor %}
{% empty %} 可选的从句,在循环为空的时候执行,即in后面的参数布尔值为False
{% for i in listvar %}
{{ forloop.counter0 }}
{% empty %}
空空如也~
{% endfor %}
ifequal/ifnotequal 标签
注释标签 {# #}
include 标签允许在模板中包含其他的模板的内容
{% include "nav.html" %}
自定义标签和过滤器
模板继承
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧