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>
代码实现效果
5847426-04978f296d4d6f94.png
智能时间过滤器效果.png

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

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

NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver. 最全解决方案!详细! 真的折磨了我整整一天,从网上的资料到GPT都翻遍了,终于是解决了!以下方案希望能帮助到你们。 阅读详情

相关推荐

用blender为模型贴图并在gazebo中显示

用blender为模型贴图并在gazebo中显示 首先我用的是最新的blender2.92版本,附上链接https://www.blender.org/download/。并设置好简体中文。语言可以在编辑->偏好设置->界面里面设置。 首先界面右上角的摄像头,方块,灯光三个场景全都删除。 接着导入stl格式的模型文件,下面以tianbot_mini上面的激光雷达的模型为例。 导入激光雷达模型后,点击进入上方的UV Editing按钮进入UV编辑界面 此时我面看见网格化的激光雷达模型

qq_48427527的博客 8000

flask框架函数中切换数据库和日期过滤

flask 切换数据库,orm条件过滤

One piece 619

Trans论文复现:电池储能调峰和调频:超线性增益的联合优化程序代码!

本程序参考一区SCI期刊《Using Battery Storage for Peak Shaving and Frequency Regulation: Joint Optimization for Superlinear Gains》,程序。与之前将电池储能用于单一应用相比,研究结果表明,如果电池联合提供多种服务,它们可以获得比以前想象的更大的经济效益。欢迎感兴趣的小伙伴关注下方公众号获取完整版代码哦~,小编会继续推送更有质量的学习资料、文章程序代码~限于篇幅,仅列出部分算例的结果!

weixin_48747334的博客 567

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

AI 帮我写单测:pytest 覆盖率提升 40% 的协作日志

AI助力pytest测试覆盖率提升40%的实践总结 本文分享了作者通过AI协作提升Python项目测试覆盖率的实践经验。初始测试覆盖率仅45%的电商后端项目,通过系统化的AI协作策略(代码分析、场景矩阵设计、迭代优化)实现了显著改进。AI不仅生成312个高质量测试用例,更提供了测试设计思路和最佳实践建议。最终覆盖率提升至85%,发现并修复23个潜在bug,效率提升3倍。文章详细展示了用户服务、订单服务等核心模块的测试案例,以及分层Fixture设计、参数化测试等高级技巧。关键成功因素包括明确的协作边界、迭代

摘星编程的博客 3277

超详细的YOLOv8安装与测试指南:让计算机视觉任务变得简单

python3+、Anaconda3或Miniconda3 Ultralytics提供了多种安装方法,包括pip、conda和Docker。通过pip包安装最新稳定版的YOLOv8,或者克隆Ultralytics GitHub仓库以获取最新版本。Docker可用于在隔离容器中执行包,避免本地安装。 最简单直接的方式就是直接使用pip方法直接安装。 也可以直接从GitHub仓库安装包。如果你想要最新的开发版本,这可能会很有用。确保你的系统上安装了Git命令行工具

CDBmax的博客 1万+

flask 继续学习

假设我们有一个学生表(students),包含以下字段:学生ID(student_id)、学生姓名(student_name)、学生年龄(student_age)、学生性别(student_gender)和学生所在班级(student_class)。通过group_by,可以将数据按照某个列的值进行分组,并对每个分组应用相应的数据处理操作,如求和、平均值、计数等。通过group_by操作,可以将数据集按照某个列的值进行分类,然后对每个分类进行聚合计算或其他操作。

xinzhengLUCK的博客 463

中科蓝讯蓝牙耳机SDK实战:从目录解析到消息处理框架

本文深入解析中科蓝讯蓝牙耳机SDK的目录结构与消息处理框架,提供从硬件驱动到蓝牙功能定制的实战指南。重点剖析SDK核心模块如消息队列机制、按键事件处理及电量报告优化,并分享二次开发中的调试技巧与避坑经验,助力开发者高效完成TWS耳机功能定制。

weixin_30335575的博客 387

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

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

2303_78607049的博客 630

LangGraph实战:用Plan-and-Execute模式5步搭建智能问答机器人(附Tavily搜索集成)

本文详细介绍了如何利用LangGraph的Plan-and-Execute模式,通过规划、执行、动态调整三个核心阶段,构建一个能够处理复杂多步骤问题的智能问答机器人。文章提供了从环境配置、状态管理到核心节点(规划、执行、重新规划)实现的完整实战指南,并集成了Tavily搜索工具,展示了如何将智能任务规划应用于实际信息查询场景。

weixin_29258297的博客 341

如何用DeepSeek写年底工作总结?——从入门到精通的全流程指南

AI助手DeepSeek如何高效撰写工作总结 摘要:本文介绍如何利用DeepSeek智能AI助手高效完成工作总结写作。工作总结具有结构固定、语言规范、内容数据化三大特性,而DeepSeek的结构化生成、风格适配、数据整合和迭代优化四大核心能力与之完美匹配。文章提出"准备-搭架-填充-优化"四步工作法:1)精准输入岗位、时间范围等核心信息;2)先搭建逻辑清晰的提纲框架;3)分模块填充具体内容,突出数据与案例;4)通过风格润色和细节补充进行优化。通过合理运用多模态材料处理能力,DeepSee

通俗易懂学IT 287

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的博客 719

YOLOv11改进 | 添加注意力篇 | 结合2024最新Mamba注意力机制MLLA助力yolov11有效涨点含二次创新C2PSA(全网独家首发改进)

本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA,本文将其和我们YOLOv11进行结合,的原理是通过将Mamba模型的一些核心设计融入线性注意力机制,从而提升模型的性能。具体来说,MLLA主要整合了Mamba中的“忘记门”(forget gate)和模块设计(block design)这两个关键因素,同时MLLA通过使用位置编码(RoPE)来替代忘记门,从而在保持并行计算和快速推理速度的同时,提供必要的位置信息。

Snu77的博客 3870

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

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

abc19991119的博客 733

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

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

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

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

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

qq_55961861的博客 175

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
上一篇: Pycharm自动添加头注释
下一篇: Flask在浏览器中打印九九乘法表
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值