1. 程式人生 > >Django之模板層-語法:{{ }}

Django之模板層-語法:{{ }}

dex view turn echars 運算 ren nothing 個數 world

模版語法的深度查詢(.)

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

Django之模板層-語法:{{ }}