相关:
Django的模板引擎提供一般性的功能函数,通过前端可以实现多数的代码逻辑功能,但它仅支持大多数常见情况下的函数功能,例如if判断,ifequal对比返回值等,复杂一些的函数功能并不支持,例如通过模板来判断一个返回值是否是合法的数字类型,如果又不希望通过后台视图代码来实现的话,就可以自定义一些前端函数功能。
Django提供了两种方式
simple_tag
filter
两种方式前置操作:
1.app下创建 templatetags 目录
2.在目录下创建py文件。
3.在文件内 创建template对象 register
from django import template
register = template.Library()
4.setting 中注册app
5.定义函数
simple_tag 方式:
模板导入符为 {% 函数 参数1 参数2 参数** %}
优点:可传递多个参数。 缺点:不能作为if条件。
from django import template
register = template.Library()
@register.simple_tag
def simple_type(num): return num ** 2
filter 方式:
模板导入符为 {{ 参数1| 函数名:参数2 }}
优点:可作为if条件。 缺点:最多两个参数,导入符终函数名后不能有空格
from django import template
register = template.Library()
@register.filter
def filter_type(a1,a2):
return a1 + a2
6.在模板中加载,并应用
{% load seting %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
{% simple_type 8 %}
{{ "AAAAA"|filter_type:"BBBBB" }}
</div>
</body>
</html>