前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django 中 自定义过滤器的创建和使用,以时间过滤器为例

Django 中 自定义过滤器的创建和使用,以时间过滤器为例

作者头像
一写代码就开心
发布2022-05-09 10:27:46
1.4K0
发布2022-05-09 10:27:46
举报
文章被收录于专栏:java和python

这个项目里面自定义了过滤器,那么如何创建自定义过滤器呢?

模版过滤器必须要放在 app中,并且这个 app必须要在 INSTALLED_APPS中进行安装。然后再在这个 app下面创建一个 Python包叫做 templatetags。再在这个包下面创建一个 python文件。 本项目中的python文件名字为print_timestamp.py

在创建了存储过滤器的文件后,接下来就是在这个文件中写过滤器了。过滤器实际上就是python中的一个函数,只不过是把这个函数注册到模板库中,以后在模板中就可以使用这个函数了。但是这个函数的参数有限制,第一个参数必须是这个过滤器需要处理的值,第二个参数可有可无,如果有,那么就意味着在模板中可以传递参数。并且过滤器的函数最多只能有两个参数。在写完过滤器后,再使用 django.template.Library对象注册进去。

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
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里面引入过滤器

在这里插入图片描述
在这里插入图片描述

使用

在这里插入图片描述
在这里插入图片描述

以上就是自定义过滤器,并且如何使用的流程

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这个项目里面自定义了过滤器,那么如何创建自定义过滤器呢?
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档