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

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

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 }}
posted @ 2018-12-10 20:53  Wualin  阅读(859)  评论(0编辑  收藏  举报