Django 自定义tag 和 filter
Posted gaizhongfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 自定义tag 和 filter相关的知识,希望对你有一定的参考价值。
自定义tag 可以传递多个值,自定义filter最多值可以传递两个值
自定义filter 可以放在{% if %} 中,自定义tag 不可以
1.在 app 下新建一个package名字叫templatetags
2.在templatetags下创建一个python 文件
3. python中是自定义的代码
from django import template from django.utils.safestring import mark_safe #register 是固定的变量名,不能改变 register = template.Library() # 自定义tag 和 filter的不通之处只在于: # tag使用 @register.simple_tag 装饰器 # filter使用 @register.filter 装饰器 @register.simple_tag def myAdd(n): return n+200 @register.simple_tag def myAdd2(n1,n2,n3): return n1+200+n2+n3 @register.filter def myAddf(n): return n+100 @register.filter def myAddf2(n1,n2): return n1+100+n2
4. 在html中使用自定义的tag 和filter
{% load myTag %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>t8</title> </head> <body> <h1>template</h1> {# 在HTML中使用{% load myTag %} 来引入自定义的文件#} {#调用自定义tag#} {% myAdd num %} {% myAdd2 num 100 20 %} {# 调用自定义filter#} {{ num | myAddf}} {# 向自定义filter中传递两个参数#} {{ num | myAddf2:100}} </body> </html>
以上是关于Django 自定义tag 和 filter的主要内容,如果未能解决你的问题,请参考以下文章
Django(模板语言-自定义filter和simple_tag)
Django(模板语言-自定义filter和simple_tag)
django-自定义过滤器(simple_tag和filter)