Django之模板层-语法:{{ }}

时间:2021-06-05 08:34:40

模版语法的深度查询(.)

views.py

def index(request):
name = 'name'
lis = [1,2,3,4,5,6]
dic = {"name":"wualin","age":21}
class Person(object):
def __init__(self,name,age):
self.name = name
self.age = age
alex = Person("alex",19)
egon = Person("egon",22)
person_list = [alex,egon] return render(request,'index.html',locals())

index.html

<body>
<p>WelCome</p>
<hr>
<p>普通查询</p>
<p>{{ name }}</p>
<p>{{ lis }}</p>
<p>{{ dic }}</p>
<p>{{ alex }}</p>
<p>{{ egon }}</p>
<p>{{ person_list }}</p> <hr>
<p>深度查询</p>
<p>{{ lis.1 }}</p>
<p>{{ dic.name }}</p>
<p>{{ alex.name }}</p>
<p>{{ person_list.1.name }}</p>
</body>

模版语法的过滤器

语法

#第一个参数是返回的参数,第二个参数是过滤器,第三个是可选参数,如果过滤器需要参数则使用:分割
{{ obj|filter_name:param}}
  • default

如果一个变量是false或者为空,使用给定的默认值,否则使用变量的值

{{ value|default:"nothing"
  • length

返回值的长度,对字符串和列表都起作用

{{ value|length }}
  • filesizeformat

将值格式化为一个人类可以读的文件尺寸

{{ value|filesizeformat }}
  • date

如果value=datetime.datetime.now()

{{ value|date:"Y-m-d" }}
  • slice

对字符串进行切片,例如:value = "hello world"

{{ value|slice:"2:-1" }}
  • truncatechars、truncatewords
    • truncatechars按字符截断
    • truncatewords按字母截断
<p>{{ text|truncatewords:9 }}</p>
  • safe

告诉Django这个数据是安全的,可以使用浏览器进行渲染,不需要进行转义,例如link = "click"

{{ link|safe }}
  • add

加法运算,例如value=1,在浏览器中渲染出来的是101

{{ value|add:100 }}
  • upper

转大写

{{ value|upper }}