版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/g_optimistic/article/details/89153151
1.新建一个app (非必要但是有用)
在项目的目录下-->右击---->在此处打开命令行
激活Anaconda环境
avtivate djangoPath
在manage.py文件所在的路径下输入命令:
python manage.py startapp Templatetag
2.在app当中创建一个templatetags包
包的标志就是里面有一个__init__.py文件,可以用来初始化导入
3.在templtaetags包下创建过滤器文件tagExample.py
(1)实例化模板库,实例必须叫register
from django import template
register=template.Library()
(2)定义自己的过滤器函数
(3)进行过滤器注册
def dosomething(value,args):
return value.replace(args,args.upper())
register.filter("replaceUpper",dosomething)
也可以使用装饰器
from django import template
from Student.models import Student
register=template.Library()
def dosomething(value,args):
return value.replace(args,args.upper())
register.filter("replaceUpper",dosomething)
@register.filter("relaceLower")
def dosomething1(value):
return value.lower()
@register.filter("relace")
def dosomething2(value,args):
return value.replace(args,args.upper())
@register.filter("ADD")
def dosomething1(value,args1):
return int(value)+int(args1)
@register.filter("getStudent")
def dosomething1(value):
id=int(value)
stu=Student.objects.filter(id=id).first()
if stu:
return True
else:
return False
@register.filter("getName")
def getStudent(value):
id=int(value)
stu=Student.objects.filter(id=id).first()
if stu:
return "欢迎%s登录"%stu.name
else:
return "请注册"
import datetime
class CurrentTimeNode(template.Node):
"""
template.Node提供了HTTPResponse方法
"""
def __init__(self,formit_string):
self.formit_string=str(formit_string)
def render(self,context):
now=datetime.datetime.now()
return now.strftime(self.formit_string)
def do_current_time(parser,token):
"""
:param parser:
:param token: 标签当中所有的内容
:return:
"""
try:
targename,arg=token.contents.split(None,1)#将标签的内容切分成标签名称和内容两部分
except ValueError as e:
raise template.TemplateSyntaxError(str(e))
else:
return CurrentTimeNode(arg)#将内容传递给定义好的返回的类
register.tag("current_time",do_current_time)
1》文件内部注册
2》在settings.py当中注册
注意django版本,不同版本,配置不同
首先要是忘了django的版本的话,先查看django的版本:
django1.9之前
django1.9-2.0之前
django2.0-
views.py
urls.py
from Student.views import StudentView,templateTag
urlpatterns+=[
path("stu/",StudentView.as_view()),
path('templateTag/',templateTag),
]
4.加载过滤器
5.使用过滤器
启动服务器