一、过滤器
(一)生成app(非必要但有用),创建包与任意命名的模块
(二) 注册app,增加OPTIONS项
(三)前端代码
(四)效果
二、自定义标签
(一)起点是最下面那行开始的
import datetime
from django import template
register = template.Library()
class CurrentTimeNode(template.Node):
"""
template.Node提供了HTTPResponse方法
"""
def __init__(self,format_string):
self.format_string = str(format_string)
def render(self,context): # Return the node rendered as a string.
now = datetime.datetime.now()
return now.strftime(self.format_string)
def do_current_time(parser, token):
"""
:param parser:
:param token: 整个标签内容 {% current_time %Y-%m-%d %}
:return:
"""
try:
tagname,arg = token.contents.split(None,1) #tagname = current_time,arg=%Y-%m-%d
except ValueError as e:
raise template.TemplateSyntaxError(str(e))
else:
return CurrentTimeNode(arg)
register.tag("current_time",do_current_time) # 前端{% current_time %Y-%m-%d %}就会请求到这里,从这里出发!
前端页面代码:
{% load mytags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% current_time %Y-%m-%d %}
</body>
</html>
效果: