这个项目里面自定义了过滤器,那么如何创建自定义过滤器呢?
模版过滤器必须要放在 app中,并且这个 app必须要在 INSTALLED_APPS中进行安装。然后再在这个 app下面创建一个 Python包叫做 templatetags。再在这个包下面创建一个 python文件。
本项目中的python文件名字为print_timestamp.py
在创建了存储过滤器的文件后,接下来就是在这个文件中写过滤器了。过滤器实际上就是python中的一个函数,只不过是把这个函数注册到模板库中,以后在模板中就可以使用这个函数了。但是这个函数的参数有限制,第一个参数必须是这个过滤器需要处理的值,第二个参数可有可无,如果有,那么就意味着在模板中可以传递参数。并且过滤器的函数最多只能有两个参数。在写完过滤器后,再使用 django.template.Library对象注册进去。
import time
from django import template
# 创建模板库对象
register = template.Library()
def print_timestamp(timestamp):
...
# specify format here
return time.strftime("%Y-%m-%d", time.localtime(timestamp))
def print_timestamp2(timestamp):
...
# specify format here
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
# 将函数注册到模板库里面
register.filter(print_timestamp)
register.filter(print_timestamp2)
if __name__ == '__main__':
print(print_timestamp2(1579597200))
# print(time.mktime(time.strptime('2020-01-21 17:00', "%Y-%m-%d %H:%M")))
以上就是创建了一个时间过滤器,将数据库里面查询出来的时间用这个过滤器转化为我们要的格式的时间。
这个是创建了过滤器了,但是如何使用呢?
在HTML里面可以将数据库查询出来的时间进行展示,但是要转化为我们要的时间
我们首先是在HTML里面引入过滤器
使用
以上就是自定义过滤器,并且如何使用的流程