模板过滤器是函数
Filters are functions that accept just one or two arguments
接收的参数有限, 提供的功能不多
所以并不推荐使用
模板标签
尽量减少模板标签的使用
- 模板标签很难 debug
Template Tags Are Harder to Debug
- 模板标签很难 reuse
Template Tags Make Code Reuse Harder
- 模板标签消耗性能
The Performance Cost of Template Tags
- 只在负责HTML渲染的时候,创建并使用模板标签,数据运算相关在model中完成
命名模板标签
➤ flavors_tags.py
➤ blog_tags.py
➤ events_tags.py
➤ tickets_tags.py
调用模板标签
{ extends "base.html" }
{ load flavors_tags }
一个陷阱 Anti-Pattern
# settings/base.py
TEMPLATES = [
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'OPTIONS': {
# Don't do this!
# It's an evil anti-pattern!
'builtins': ['flavors.templatetags.flavors_tags'],
},
]