欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

自定义过滤器和自定义标签

发布时间:2024/1/23 编程问答 25 豆豆
生活随笔 收集整理的这篇文章主要介绍了 自定义过滤器和自定义标签 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在我们的日常的django开发过程当中,难免遇到数据处理的问题,比如,现在通过数据采集,得到了全国3亿人的生日,然后要在前端进行展示,但是,由于数据来源多处,导致生日的格式各种各样,比如 1983-02-03 ,2016年4月16日,这个时候如果数据采集过程当中没有进行数据过滤,就需要有一种功能针对每一条数据的日期进行修改。
views.py

def threeyiData(request):threeyi = [{"name": "张三", "birthday": "1983-04-45"},{"name": "李四", "birthday": "1996年02月68日"},{"name": "王五", "birthday": "1983/02/31"},{"name": "马六", "birthday": "1983.02.03"},]return render(request,"loginapp/tyd.html",locals())

1、在APP当中创建templatetags包,然后在里面创建过滤器文件。

import re from django import template register=template.Library() @register.filter(name="setTime") def set_time(value):"""过滤器函数,value接收的是过滤器前面的值{{a|setTime}}value就是a:param value::return:"""res=re.findall(r"(\d{2,4}).*?(\d{1,2}).*?(\d{1,2})",value)result="%s年%s月%s日"%res[0]return result

3、在settings INSTALL_APP当中安装过滤器文件

  • List item

  • 4、在前端使用过滤器

    {% extens "base.html" %} {% load setTime %} {% block content %}{% for three in threeyi %}<p style="color:green">{{ three.name }}:{{ three.birthday|setTime|replaceSting:"0,o"}}</p>{% endfor %}{% endblock %}

    过滤器加参数

    @register.filter(name="replaceSting") def set_time(value,args):"""过滤器函数,value接收的是过滤器前面的值{{a|setTime}}value就是a"""args1,args2=args.split(",")result=value.replace(args1,args2)return result

    总结

    以上是生活随笔为你收集整理的自定义过滤器和自定义标签的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。