Python自定义计算时间过滤器实现过程的示例分析-创新互联

这篇文章主要介绍Python自定义计算时间过滤器实现过程的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:成都响应式网站建设公司品牌网站建设成都全网营销。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站制作、成都网站建设、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

在写自定义的过滤器时,因为django.template.Library.filter()本身可以作为一个装饰器,所以可以使用:

register = django.template.Library()@register.filter  代替 register.filter("过滤器名","函数名")

如果使用@register.filter进行注册自定义的过滤器,并且没有传递任何参数,那么默认的过滤器名和函数名是相同的,当然,也可以进行修改,只需要在@register.filter("过滤器名"),此时的过滤器名就更改了,就可在DTL模板中使用自定义的过滤器了。

定义时间计算过滤器在显示的时候,时间的显示规则:time距离现在多长时间间隔

如果时间间隔小于1分钟,那么就像是“刚刚”如果时间间隔大于1分钟小于1小时,那么就显示“xx分钟前”如果是大于1小时小于24小时,那么就显示“xx小时前”如果是大于24小时,小于30天,那么就显示“xx天前”'否则就是显示具体时间

示例代码如下:

自定义过滤器的文件my_fliter.py

@register.filter()def time_since(value):  # 首先对传进来的时间进行判断,如果是datetime类型的就可以与当前的时间进行比较,  # 如果不是datetime类型的,就直接返回value  if not isinstance(value,datetime):    return value  # 如果可以到达这里,就代表为datetime类型的,  # timedelay.total_seconds()属性  now = datetime.now()  timestamp = (now - value).total_seconds()  if timestamp < 60:    return "刚刚"  elif timestamp >= 60 and timestamp < 60*60:    # 在python3中如果两数相除,有余数的话,就会保持小数,这个时候我们就可以使用int()函数,进行转换    minutes = int(timestamp/60)    return "%s分钟前" % minutes  elif timestamp >= 60*60 and timestamp < 60*60*24:    hours = int(timestamp/60/60)    return "%s小时前" % hours  elif timestamp >= 60*60*24 and timestamp < 60*60*24*30:    days = int(timestamp/60/60/24)    return "%s天前" % days  else:    return value.strftime("%Y/%m/%d %H:%M")

views.py中定义视图函数,并且构造一个时间:

from django.shortcuts import renderfrom datetime import datetimedef index(request):  context = {    'time': datetime(year=2019,month=1,day=16,hour=23,minute=44,second=0)  }  return render(request,'index.html',context=context)

index.html中进行调用:

{# 如果想要使用自定义的过滤器的话,就必须要先导入 ,导入的名称为自定义过滤器所处的文件名 #}{# 必须要把app安装到settings.py文件中 #}{% load my_fliter %}<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Title</title></head><body>  {{ time|time_since }}</body></html>

以上是“Python自定义计算时间过滤器实现过程的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!

网站名称:Python自定义计算时间过滤器实现过程的示例分析-创新互联
URL地址:https://www.cdcxhl.com/article32/dpdpsc.html

成都网站建设公司_创新互联,为您提供搜索引擎优化网站收录网站内链关键词优化响应式网站网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设