Flask自定义时间过滤器

使用Flask自定义时间过滤器 在本文中,我们学习了如何使用Flask自定义时间过滤器来格式化时间并在模板中使用。通过自定义时间过滤器,我们可以轻松地处理和格式化时间对象,使模板的使用更加方便和灵活。希望本文对您有所帮助,可以在您的Flask应用程序中使用自定义时间过滤器来满足您的需求。通过自定义时间过滤器,我们可以在模板中轻松地格式化和操作时间对象。现在,我们已经定义了自定义时间过滤器,可以在模板中使用它来格式化时间了。在本文中,我将向您展示如何使用Flask自定义时间过滤器来格式化时间并在模板中使用。在Flask中,可以通过。 阅读详情
关于Flask过滤器

Flask自带的过滤器功能有限,很多时候没办法满足用户需求。
故,Flask为用户提供了template_filter装饰器,用来创建用户所需的自定义过滤器

时间显示

经常刷博客的朋友都会注意,博客发布时间的显示大致规则如下:

时间段显示格式
1分钟内刚刚
1–60分钟多少分钟前
1-24小时多少小时前
1–30天内多少天前
30天以上具体时间
非时间数据原有内容(代码自适应的异常场景)
时间过滤器
# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/5/23 23:56
# @Software : PyCharm
# @version  :Python 3.6.8
# @File     : app.py

from flask import Flask, render_template
import datetime

app = Flask(__name__)

_now = datetime.datetime.now()


@app.template_filter("time_filter")
def time_filter(time):
    if not isinstance(time, datetime.datetime):
        return time
    _period = (_now - time).total_seconds()
    if _period < 60:
        return "刚刚"
    elif 60 <= _period < 3600:
        return "%s分钟前" % int(_period / 60)
    elif 3600 <= _period < 86400:
        return "%s小时前" % int(_period / 3600)
    elif 86400 <= _period < 2592000:
        return "%s天前" % int(_period / 86400)
    else:
        return time.strftime('%Y-%m-%d %H:%M')


@app.route('/')
def index():
    timeList = [
        'abcd',
        _now,
        _now - datetime.timedelta(minutes=5),
        _now - datetime.timedelta(hours=10),
        _now - datetime.timedelta(days=15),
        _now - datetime.timedelta(days=150)
    ]

    return render_template('index.html', timeList=timeList)


if __name__ == '__main__':
    app.run()

对应的HTML基础模板:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能显示时间</title>
    {% for time in timeList %}
        <ul>
            <li>
                <p>{{time}}</p>
                <p>{{time|time_filter}}</p>
            </li>

        </ul>
    {% endfor %}
</head>
<body>

</body>
</html>
代码实现效果

智能时间过滤器效果.png

github:https://github.com/KingUranus/FlaskTests

©本文由作者:清风Python 原创 如需转载请注明
欢迎大家关注我的公众号 清风Python

从零到一:微信小程序Camera组件实现高效连续扫码的实战解析 本文详细解析了如何利用微信小程序Camera组件实现高效连续扫码功能,适用于零售仓储、物流配送等场景。通过优化扫码核心机制、防抖处理和图像增强技术,开发者可以突破官方API限制,打造媲美专业扫码枪的流畅体验。文章还提供了性能基准测试和高级功能扩展方案,助力企业提升操作效率。 阅读详情

相关推荐

手把手调试Altera FPGA远程升级:从ASMI扇区擦除到Remote Update IP配置的避坑实录

本文详细解析了Altera FPGA远程升级的全流程,重点介绍了Cyclone IV系列FPGA的ASMI扇区擦除和Remote Update IP配置的实战技巧。通过双镜像架构设计、ASMI IP核优化配置及Remote Update IP的隐藏参数设置,帮助开发者避免常见陷阱,提升远程升级的可靠性和效率。

weixin_30872499的博客 447

27.Python中Flask自定义时间过滤器代码案例

Python中Flask自定义时间过滤器代码案例app = Flask(__name__) # 年 月 日 时 分 秒 # 数据库中存放的数据是 2030/01/01 00:00:00 # 现在时间是 2030/01/01 01:30:00 @app . template_filter('handler_time') def handler_time(time) : '''time距离现在的时间间隔1. 如果时间间隔小于1分钟以内,那么就显示“刚刚”

qq_36301043的博客 607

labview中DAQ采集多个数据通道(温度传感器)(TTL信号的曲轴位置传感器)总结

文章目录前言一、面对的问题篇二、问题解决篇三、后续工作总结 前言 我研一的项目利用labview软件和NI数据采集卡采集发动机传感器的信号然后进行采集,发动机传感器是有很多种的,所以难以避免的需要采集多个通道的传感器信号。 一、面对的问题篇 前篇已经写道我已经将温度传感器的信号采集出来,也可以将其数据进行信号处理,由电压信号转变为温度值。但是想要采集多个通道的信号,加上TTL信号的曲轴位置传感器,我模仿温度传感器采集的程序另加了一个DAQ助手进行采集。也就是如图所示的程序: 但是这个程序不能正常显

xiaobaiwsc的博客 1万+

小程序中 时间戳转日期格式(年月日时分秒)封装使用

在 utils 中自行新建文件 tool.js ,放入下放js代码 /** * function: 60秒内(刚刚),60秒至60分钟(**分钟前),1小时至24小时(**小时前),1天至15天(**天前),其他为正常日期显示 * @number 時間戳 */ function formatMsgTime(number) { var dateTime = new Date(number); // 将传进来的字符串或者毫秒转为标准时间 var Y = dateTime.getFullYe

鹏仔工作室的秘密基地 2091

KIBANA可视化管理界面说明

更说明转自https://blog.youkuaiyun.com/IT_ZRS/article/details/125496588 1 主要结构功能 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图表 Dashboard:仪表视图 将构建的图表组合形成图表盘 Timelion:时间轴视图 随着时间流逝的数据 APM:性能管理视图 应用程序的性能管理系统 Canvas:大屏展示

tian830937的专栏 7086

【SerDes】美信GMSL2-CSI调试心得

美信GMSL2加解串器芯片家族广泛应用于车载和工业视觉系统。文章介绍了MAX96717/MAX96717F加串器和MAX96724/MAX96724R解串器的关键特性,包括支持MIPI CSI-2接口、6Gbps传输速率等功能。提供了基于高通平台的demo系统配置和调试步骤,重点阐述了Link Lock、PCLK检测和Video Lock等关键调试环节,并详细说明了像素模式,隧道模式的工作原理及寄存器配置示例。文中还包含通过I2C读写寄存器的具体操作指令,取流freeze可能原因和解决方法。

qq_38089448的博客 2494

Flask-jinja2模版自定义时间过滤器

最终代码运行效果如下--------------------------------如下的截取微博的一张图片中, 在文案中显示的18小时前,就可以用自定义时间过滤器实现。文档字符串要求为----------------------------------index2.html模版内容如下------------------4. 如果是大于24小时小于30天以内,那么就显示“xx天前”3. 如果是大于1小时小于24小时,那么就显示“xx小时前”2. 如果是大于1分钟小于1小时,那么就显示“xx分钟前”

2303_78607049的博客 630

深入解析路科验证V0实验lab1:SV接口与时钟块实战

本文深入解析了路科验证V0实验Lab1的核心内容,重点阐述了SystemVerilog接口与时钟块在验证环境搭建中的关键作用。通过拆解router_io接口设计、时钟块同步机制及程序块封装,详细讲解了如何构建稳定可靠的验证通信基础,并提供了复位时序分析与常见调试技巧,为后续复杂验证打下坚实基础。

peach的博客 430

flask_自定义时间处理过滤器案例

if isinstance(time,datetime): now=datetime.now() timestamp=(now-time).total_seconds() if timestamp&lt;60: return '刚刚' elif timestamp&gt;=60 and timestamp&lt;=60*60: min...

qq_27110607的博客 720

毕设-YOLOv8-OBB 实现自有数据集缺陷旋转检测全过程记录

这次项目让我深入理解了 YOLOv8-OBB 的原理和使用流程。步骤内容工具数据标注制作倾斜缺陷样本格式转换从 HBB 转换为 OBB模型训练使用 Ultralytics YOLOv8 OBBCLI 命令模型测试推理与结果可视化通过 OBB 模型,我的缺陷检测系统获得了更高的精度和鲁棒性。未来我打算继续优化数据增强方式,比如引入随机旋转、仿射变换等,让模型更适应不同角度的样本。

FJN110的博客 446

古风仙侠少女三视图提示词,一键生成角色设定

3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。平视正交视角,统一光照,纯白背景,无文字无水印,避免强透视和动态变形。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。3D中国写实CG风格,CG渲染质感,精细3D建模,PBR物理材质,细腻服装纹理,电影级灯光,丰富表情,高精度场景,次世代引擎画质。少女,古风仙侠少女气质,灵动、温婉、仙气。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1053

Flask框架【自定义过滤器、自定义数据替换过滤器 、自定义时间过滤器、选择结构、选择练习、循环结构、循环练习、导入宏方式 】(三)

Python框架【自定义过滤器、自定义数据替换过滤器 、自定义时间过滤器、选择结构、选择练习、循环结构、循环练习、导入宏方式】(三)

abc19991119的博客 733

2025机械考研复试面试问题汇总篇(含13门科目),考研机械复试专业面试常见重点问题总结!考研机械复试专业面试准备看这一篇就够了!

(完整版内容:)1.汇集了本科各科的重点知识及多个机械名校800多个常见问题,共8.7万字185页,涵盖机械所以专业课的重点知识和常见问答。 2.涉及机械大类重点科目,包括:材料力学、控制工程、数控技术、机械制造技术基础、理论力学、液压传动、机械设计、机械原理、工程材料、互换性与技术测量、测试技术、汽车理论、程序设计与C语言等13门必修课。

weixin_56510835的博客 1862

flask学习之自定义过滤器

flask是一个轻量级,简便的过滤器,可以进行简便的自定义过滤器 自定义过滤器方法: @app.template_filter() def my_filter(value) return *** 完整代码 from flask import Flask,render_template import datetime app = Flask(__name__) @app.route('/') def index(): context = { 'username': 'hello

LCY133的博客 546

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

关于Flask模板_自定义过滤器的方法

关于Flask模板_自定义过滤器的方法!

qq_55961861的博客 175

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

13、flask--自定义时间处理过滤器案例

前端代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>自由太阳</title> </head> <body> <p>时间:{{ create_time|handle_time }}</p> </body> </html> 后端代码如下:

qq_39432161的博客 580

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

flask框架发表时间练习

基本框架 from flask import Flask, render_template, url_for, views, jsonify import time from _datetime import datetime app = Flask(__name__) if __name__ == '__main__': app.run(debug=True,port=8000) 首页设置 @app.route('/') def index(): return '首页' 使用函数方

enginebrkalsy的博客 180

flask之 自定义模板过滤器

flask自定义模板过滤器 文章目录flask自定义模板过滤器@app.template_filter('过滤器名字') @app.template_filter(‘过滤器名字’) flask 中用@app.template_filter(‘name’)来自定义名字为name的过滤器。 然后在该视图函数下定义函数来指定该过滤器的功能即可 如下面的案例为返回博文发表时间(如在朋友圈,微博等)形如’ xxx小时之前 ’ 在py文件中自定义过滤器 我定义的过滤器名称为handle_time;功能是根据发布时间和当

yuaicsdn的博客 556

python Flask框架学习——jinja2模板自定义过滤器

自定义过滤器 自定义一个提交时间过滤器,假设要发表一篇博客,发表之后会显示距今离发表时过了多长时间 python文件from flask import Flask, render_template from datetime import datetime app = Flask(__name__) @app.route("/") def index(): content = { "time": datetime(2020, 10, 17, 22, 0, 0) }

cmy_top的博客 419

Day043 Jinja2过滤器

过滤器基本使用 举个例子,哪里用到了过滤器 访问:https://www.xfz.cn/,说明提示时间处就用到了过滤器 简单使用python文件如: @app.route('/') def hello_wo...

Melody_92的博客 266

flask学习5--过滤器-datetime_format

对于前面的引入 from datetime import datetime我想明白了,def后面定义的虽然是datetime_format,但其实最根本的还是_前面的datetime,后面的format只是一个标号,不会影响根本定义的函数是什么,所以只需要引入datetime。查询之后,这个过滤器的定义也可以这样写,这样和flask中对于其他的定义差不多,我更倾向于这一种写法,定义形式不同但使用的方式都是一样的。过滤器的引用代码如下,相当于一个固定的公式,如果使用这个过滤器就要把这段代码写上。

wydhxhdmd的博客 361

自定义模板过滤器

#自定义过滤器 @app.template_filter('cut') def cut(value): value = value.replace('hello','') return value ====================== 前端模板使用 <!--使用自定义的过滤器--> <p>{{ article|cut ...

weixin_30634661的博客 152

flask jinja2 mysql_flask模版 Jinja2使用笔记

Flask模版 jinjan2使用模版在渲染模版时,默认会从项目根目录下的templates文件夹下查找 模版文件可以在 flask 初始化的时候通过template_folder 指定模版目录模版参数使用render_template时,可以通过传递关键字参数,在模版中直接使用{{ key }}的方式使用如果参数过多,可以将参数放在 字典中,然后通过render_template(templat...

weixin_35548251的博客 194

Flask : jinjia2模板过滤器、if_for()、宏和import

题外话: ctrl + 左键 可以查看方法或函数等具体内容和用法 1. jinjia2模板过滤器 自动转义关闭弹窗 safe 也可以关闭转义 后端记得写好ctrl+s 保存 网页前端F5 刷新运行 length 运行结果是6, 因为python 长度是6 下面如果是字典呢,字典key value 是一项,键值对哦! 以下是把弹窗注释掉 replace truncate 截取了hallo world 5个长度,作用,如同微博,省略一些内容,用…表达 stri

Bill_82的博客 573
上一篇: 使用Python将任正非400+篇演讲批量转化为语音
下一篇: Flask在浏览器中打印九九乘法表
清风 python
博客等级 码龄9年 64粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值