在html模板里面加python函数(simple_tag与filter)
自定义函数
simple_tag
a. app下创建templatetags目录
b. 任意xxoo.py文件
c. 创建template对象 register
d.
@register.simple_tag
def func(a1,a2,a3....)
return "asdfasd"
e. settings中注册APP
f. 顶部 {% load xxoo %}
g. {% 函数名 arg1 arg2 %}
缺点:
不能作为if条件
优点:
参数任意
filter
a. app下创建templatetags目录
b. 任意xxoo.py文件
c. 创建template对象 register
d.
@register.filter
def func(a1,a2)
return "asdfasd"
e. settings中注册APP
f. 顶部 {% load xxoo %}
g. {{ 参数1|函数名:"参数二,参数三" }} {{ 参数1|函数名:数字 }}
缺点:
最多两个参数,不能加空格
优点:
能作为if条件
《pyhton文件demo.py》
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.simple_tag
def fun1(a1,a2,a3):
return a1 + a2 +a3
@register.filter
def fun2(a1,a2):
print(a2,type(a2))
return a1 + str(a2)
《html文件》
{{ name }}
{{ name|lower }}
{% fun1 1 2 3 %}
{{ '123'|fun2:'213' }}

浙公网安备 33010602011771号