1. 程式人生 > >django 模板語言之 simple_tag 自定義模板

django 模板語言之 simple_tag 自定義模板

 

 

自定義函式
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 import
template 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_tag
def 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>