django 模板語言之 simple_tag 自定義模板
阿新 • • 發佈:2018-12-11
自定義函式
simple_tag
a. app專案下建立templatetags目錄
b. 建立任意xxoo.py檔案 用做自定義py函式
c. 建立template物件 register
在函式或者類 前面 加上建立的物件裝飾器register @register.simple_tag
物件不能改名字 必須是register
register = template.Library()
@register.simple_tag
#!/usr/bin/env python #coding:utf-8 from django importtemplate from django.utils.safestring import mark_safe register = template.Library() @register.simple_tag def my_simple_time(v1,v2,v3): return v1 + v2 + v3
d.
@register.simple_tag
def func(a1,a2,a3....)
return "asdfasd"
e. settings中註冊APP
f.在使用自定義simple_tag的html檔案中匯入之前建立的 xx.py 檔名,
頂部 {% load xxoo %}
g.使用simple_tag
格式
{% 函式名 arg1 arg2 %} arg1 arg2 是傳引數 py檔案的函式有引數,需要傳引數
缺點:
不能作為if條件
優點:
引數任意
app專案下建立templatetags目錄,建立自定義py檔案
foo.py 程式碼
from django import template from django.utils.safestring import mark_safe register = template.Library() @register.simple_tagdef BOO(a1,a2): return a1+a2
setting 註冊app
在使用自定義simple_tag的html檔案中匯入之前建立的 xx.py 檔名,使用simple_tag
{% load foo %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Title</title> </head> <body> {% BOO 1 5 %} </body> </html>