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" %}

自定义标签和过滤器

模板继承

posted @ 2024-06-18 09:27  在半空頫視地球╰☆╮  阅读(2)  评论(0编辑  收藏  举报