1. 程式人生 > >Python筆記17(Django之模板語言)

Python筆記17(Django之模板語言)

左右 nbsp def oda ron 對象 name slice not

一、常用語法

Django模板語言的語法主要分為2種: {{變量}} 和 {% Tag %} ,{{變量 }}主要用於和視圖變量做替換,變量相關的用{{}},邏輯相關的用{%%}。

1、變量相關

  1. 兩個語法:
    1. {{ }} --> 跟變量相關的操作
    2. {% %} --> 跟邏輯相關的操作
  2. 變量相關
    1. 傳字典或對象類型的數據 obj.name/obj.age
    2. 傳數組類型的數據 obj.索引值
  3. 日期格式化
    <p>{{ today|date:"Y-m-d H:i:s"}}</p>

  4. 顯示真正的html代碼
    <p>{{ link|safe }}</p>
  5. XXS攻擊 <script>for(;;){alert(123}</script>

備註:模板語言調用方法的時候不需要加括號。

示例:

# views.py中的代碼
def template_test(request):
    l = [11, 22, 33]
    d = {"name": "alex"}

    class Person(object):
        def __init__(self, name, age):
            self.name 
= name self.age = age def dream(self): return "{} is dream...".format(self.name) Alex = Person(name="Alex", age=34) Egon = Person(name="Egon", age=9000) Eva_J = Person(name="Eva_J", age=18) person_list = [Alex, Egon, Eva_J] return render(request, "
template_test.html", {"l": l, "d": d, "person_list": person_list}) #模板語言中的寫法 {# 取l中的第一個參數 #} {{ l.0 }} {# 取字典中key的值 #} {{ d.name }} {# 取對象的name屬性 #} {{ person_list.0.name }} {# .操作只能調用不帶參數的方法 #} {{ person_list.0.dream }}

2、Filters

語法: {{ value|filter_name:參數 }}

1)default

{#如果value值沒傳的話就顯示nothing#}
{{ value|default: "nothing"}}

2)length

{{ value|length }}
{#‘|‘左右沒有空格沒有空格沒有空格#}
{#返回value的長度,如 value=[‘a‘, ‘b‘, ‘c‘, ‘d‘]的話,就顯示4.#}

3)filesizeformat

將值格式化為一個 “人類可讀的” 文件尺寸 (例如 ‘13 KB‘, ‘4.1 MB‘, ‘102 bytes‘, 等等)。例如:

{#如果 value 是 123456789,輸出將會是 117.7 MB。#}
{{ value|filesizeformat }}

4)slice

{#切片#}
{{value|slice:"2:-1"}}

5)date

{#格式化#}
{{ value|date:"Y-m-d H:i:s"}}

Python筆記17(Django之模板語言)