AI智能
改变未来

Django模板


Django模板标签

文章目录

  • Django模板标签
  • 变量
  • 列表和字典
  • 过滤器
  • if / else
  • for
  • ifequal / ifnotequal
  • 注释
  • include
  • 模板继承

变量

1:Django模板的变量在前端将用

{{ xxx }}

表示,其中

xxx

是变量的名称

<h1> {{ name }} </h1> <!-- 会将后端传来的参数的变量的内容显示出来 -->

2:语法:

view:{\"HTML变量名\" : \"views变量名\"}HTML:{{ HTML变量名 }}

列表和字典

1:可以将列表传入前端进行相应的操作

  • 后端给前端传入列表
test_list = [\"test1\", \"test2\", \"test3\"]return render(request, \"list.html\", {\"li\": test_list})
  • 前端可以适用li进行链表的访问和操作
<p> {{ li }} </p>   <!-- 返回整个列表 --><p> {{ li.1 }} </p>  <!-- 返回列表的第二个元素 -->

2:字典同理。只不过这次可以通过对应的键返回指定的内容

<p> {{ dict.age }} </p>  <!-- 返回字典的age属性 -->

过滤器

1:过滤器的语法是

{{ 变量名 | 过滤器:可选参数 }}

可以在变量被修改前进行对应的装饰修改

<p> {{ li.0 | upper }} </p> <!-- 将传入的列表的第一个元素进行大写处理 --><p> {{ li | first | lower }} </p> <!-- 将列表的第一个元素小写处理 -->

2:常见的过滤器有

add

:都添加指定的内容

first / last

:列表的最后一个或者第一个

cut

data

:返回指定的格式的日期:常见的就是

Y-n-d H:i:s

default

:默认的情况

join

:类似于python的

join

操作,对字符串,列表等用指定的字符进行拼接

length

:长度

lower / upper

:大写 / 小写

slice

:对列表在指定的位置进行切片

| slice : \"2 : \"从2开始进行切片

safe

:设置为安全模式,不会对字符串进行自动的转义

truncatechars

:显示指定个数的字符,如果字符串的长度超过限定的字符个数,后面自动补

...

填充

if / else

{% if xxx %}con.....{% elif xxx %}con.....{% else %}con.....{% endif %}

for

1:基本结构

{% for elem in xxx %}iter _con....{% endfor %}

2:内置变量

(1)在 {% for %} 标签里可以通过 {{forloop}} 变量获取循环序号。

  • forloop.counter

    : 顺序获取循环序号,从

    1

    开始计算

  • forloop.counter0

    : 顺序获取循环序号,从

    0

    开始计算

  • forloop.revcounter

    : 倒叙获取循环序号,结尾序号为

    1
  • forloop.revcounter0

    : 倒叙获取循环序号,结尾序号为

    0
  • forloop.first

    (一般配合if标签使用): 第一条数据返回

    True

    ,其他数据返回

    False
  • forloop.last

    (一般配合if标签使用): 最后一条数据返回

    True

    ,其他数据返回

    False

(2)

{% empty %}

在循环为空的时候执行(即 in 后面的参数布尔值为 False )

{% for i in listvar %}{{ forloop.counter0 }}{% empty %}空空如也~{% endfor %}

ifequal / ifnotequal

1:比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值

{% ifequal section \'sitenews\' %}<h1>Site News</h1>{% else %}<h1>No News Here</h1>{% endifequal %}

注释

{# xxx #}

进行注释

{# 这是一个Django的注释 #}

include

{% include \"xxx.html\" %}允许在这个模板中使用其他模板的内容

{% include \'test.html\' %}

模板继承

1:父类模板

{% block 名称 %}预留给子模板的区域,可以设置设置默认内容{% endblock 名称 %}

2:子模版

{% extends \"父模板路径\"%}{ % block 名称 % }内容{% endblock 名称 %}

3:举例子说明一下

{# 在父模板中 #}<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>菜鸟教程(runoob.com)</title></head><body><h1>Hello World!</h1><p>菜鸟教程 Django 测试。</p>{% block mainbody %}<p>original</p>{% endblock %}</body></html>{# 在子模版中 #}{%extends \"base.html\" %}{% block mainbody %}<p>继承了 base.html 文件</p>{% endblock %}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Django模板