Python筆記17(Django之模板語言)
阿新 • • 發佈:2018-08-20
左右 nbsp def oda ron 對象 name slice not 4. 顯示真正的html代碼
<p>{{ link|safe }}</p>
5. XXS攻擊 <script>for(;;){alert(123}</script>
一、常用語法
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>
<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之模板語言)