1.模板語言的幫助方法:
{{ item.event_start|date:"Y-m-d H:i:s"}} #轉換日期
{{ bio|truncatewords:"30" }} #字符串切片
{{ my_list|first|upper }} #第一位 轉換為大寫
{{ name|lower }} #轉換為小寫
通過封裝python的方法來實現其功能
示例:
views.py:
def simpletag(request): name='AKHFDAO' return render(request,'simpletag.html',{'name':name})
html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>{{ name }}</p> <p>{{ name|lower }}</p> </body> </html>
2.自定義simple_tag的步驟:
一:定義simple_tag:
(1)在app目錄里創建templatetags目錄(名字唯一)
(2)在templatetags下創建任意py文件(xx.py)
(3)創建templa對象 register
(4)編寫函數
from django import template
register=template.Library() #對象名必須為register
@register.simple_tag()
def funcname(a1,a2):
return a1+a2
二:使用simple_tag:
(1)settings.py文件里注冊app
INSTALLED_APPS
找到此列表,添加app名
(2)在HTML文件的頂部load你的py文件(上面步驟2)
(3)調用,使用{% 函數名 arg1 arg2 %}
{% load xx %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body>
<p>{% funcname "succ" "ess1" %}</p>
</body> </html>
3.自定義filter的步驟:
在上面的配置基礎上:
@register.filter()
def funcname2(a1,a2): #最多只能有兩個參數
return a1+a2
HTML:
{{ arg1|函數名:"arg2,arg3" }} {{ arg1|函數名:數字 }}
{% load xx %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <p>{{ 'succ'|funcname2:'ess2' }}</p> </body> </html>
