django QuerySet遇到的几个DateTimeField格式的查询过滤问题

Django ORM中常用字段和参数及多种查询 int自增列,必须填入参数 primary_key=True。当model中如果没有自增列,则自动会创建一个列名为id的列。一个整数类型,范围在 -2147483648 to 2147483647。(一般不用它来存手机号(位数也不够),直接用字符串存,)字符类型,必须提供max_length参数, max_length表示字符长度。这里需要知道的是Django中的CharField对应的MySQL数据库中的varchar类型,没有设置对应char类型的字段,但是Django允许我们自定义新的字段,下面我来自 阅读详情

我最近写了一个需求,获取用户最近一日,周,月,总的收入详情,我也是在网上找了一部分资料,然后自己实验,写完了代码,分享给大家

now = datetime.datetime.now()
	# 打印day_start之后得到的是 2019-04-16 19:16:26.150070 表示现在的前24个小时
day_start = now - datetime.timedelta(hours=23, minutes=59, seconds=59)
	# 然后我看源码 还有周,日 毫秒,微秒等等 

class timedelta(SupportsAbs[timedelta]):
    min: ClassVar[timedelta]
    max: ClassVar[timedelta]
    resolution: ClassVar[timedelta]

    if sys.version_info >= (3, 6):
        def __init__(self, days: float = ..., seconds: float = ..., microseconds: float = ...,
                     milliseconds: float = ..., minutes: float = ..., hours: float = ...,
                     weeks: float = ..., *, fold: int = ...) -> None: ...
    else:
        def __init__(self, days: float = ..., seconds: float = ..., microseconds: float = ...,
                     milliseconds: float = ..., minutes: float = ..., hours: float = ...,
                     weeks: float = ...) -> None: ...
 # 分别拿到 周 月 是得到现在的时间之前的一周和一个月  然后在queryset中 使用addtime__gte 小于等于的时间格式去过滤,就可以得到所有这个时间段的数据
week_start = now - datetime.timedelta(weeks=1)
month_start = now - datetime.timedelta(days=30)

下面是Date TimeField QuerySet查询常用的几个参数

1、lt:小于
queryset=yourobject.objects .filter(时间字段名称__lt=start)

2、lte:小于等于
queryset=yourobject.objects .filter(时间字段名称__lte=start)

3、gt:大于某个时间
now = datetime.datetime.now()
#前一天
start = now – datetime.timedelta(hours=23, minutes=59, seconds=59)

start = now+datetime.timedelta(day=-1)
queryset=MemberRole.objects .filter(时间字段名称__gt=start)

4、gte:大于等于某个时间:
queryset=MemberRole.objects .filter(时间字段名称__gte=start)

5、year:查询某年
MemberRole.objects.filter(时间字段名称__year=2005)

6、month:查询某月
MemberRole.objects.filter(时间字段名称__month=12)

7、day:某天
MemberRole.objects.filter(时间字段名称__day=3)

8、week_day:星期几
MemberRole.objects.filter(时间字段名称__week_day=2)

9、range:查询时间段
start_date = datetime.date(2005, 1, 1)
end_date = datetime.date(2005, 3, 31)

10、获取上个月第一天和最后一天

import datetime
fist = datetime.date(datetime.date.today().year,datetime.date.today().month-1,1)
last = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)
Django Models深度解析:从字段声明到性能优化的全链路实践 Django Models是Web开发中连接业务逻辑与数据库的核心抽象,远不止于Python类定义。其本质是一套融合数据库DDL、ORM查询构建与领域规则约束的建模语言。理解CharField背后的跨数据库行为、ForeignKey与ManyToManyField的性能权衡、迁移系统的版本协商机制,以及QuerySet惰性执行与缓存策略,是构建高可用应用的基础。尤其在用户系统、内容管理、电商订单等典型场景中,Model层的设计选择直接决定查询效率、数据一致性与安全边界。本文聚焦Django 4.x/5.x主 阅读详情

相关推荐

基于Django与协同过滤算法:从零构建电影推荐系统实战

推荐系统是现代互联网应用的核心技术之一,其核心原理是通过分析用户的历史行为数据,发现用户偏好与物品之间的关联,从而实现个性化信息分发。从技术实现上看,协同过滤算法是其中经典且应用广泛的方法,它主要分为基于用户和基于物品两种范式,通过计算用户或物品之间的相似度(如余弦相似度)来预测用户可能感兴趣的未知内容。这项技术的价值在于能够有效提升用户粘性、增加内容消费时长,广泛应用于电商、流媒体、社交网络等场景。本文聚焦于电影推荐这一具体应用,详细阐述了如何利用Django框架和Python生态(如pandas、sci

weixin_34162228的博客 360

python django项目中对时间的处理建议

时间的应用是非常普遍的. 各个记录都要带上时间,否则不知道什么时间的数据和操作. 前端由分布在世界各地的web来app来访问, 时区不同. 后端也可能分布在不同的区域服务器,时区也不同. 所以, 前后端的交互时,时间尽量为unix时间戳timestamp, 它是绝对时间,跟时区无关. 但我们在测试这个api时会很不方便, 因此,后端提供的api,需要注意兼容这两种输入格式,就是时间字符串和时

Power of technology will free your body and spirit 608

Django家庭财务系统实战:数据建模、聚合查询与部署全解析

在Python后端开发中,ORM是连接业务逻辑与数据库的桥梁,通过对象化操作代替原生SQL,显著提升数据建模与查询效率。Django作为主流Web框架,其ORM不仅支持多表关联、聚合统计和日期分组查询,还提供Admin后台快速管理数据,适合解决多成员、多账户场景下的复杂数据关系。从账户、分类、账单到预算的建模,再到视图、模板与Chart.js图表渲染,Django能串联起完整的数据处理链路。对于需要快速落地并部署上线的家庭财务管理系统这类项目,掌握Django的数据建模与聚合查询技巧,配合静态文件收集和Gu

weixin_34014555的博客 285

处理Django ORM模型DateTimeField获取的时间

DateTimeField 日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例,因此格式化时间非常简单 stime = vm_info.ctime #这是从数据库获取的时间,类型为datetime.datetime print(stime.strftime('%Y-%m-%d %H:%M:%S')) ...

运维@小兵的博客 1745

Django任务管理系统开发实战:模型设计到部署上线

在Web开发中,任务管理系统是典型的业务应用场景,其核心在于对任务数据的增删改查、状态流转与权限控制。Django作为Python生态中功能完备的全栈框架,通过内置ORM、Admin后台、认证体系等组件,让开发者能够以更高效的方式完成数据建模与业务逻辑实现。理解ORM的惰性查询与字段设计原则,是构建可靠系统的关键。此类系统在团队协作、个人效率工具等场景中具有广泛应用价值,尤其适合内部工具的快速落地。本文围绕基于Django框架构建任务管理系统的实际过程,分享从项目初始化、数据模型设计到部署上线的完整经验。

weixin_34293246的博客 332

Django家庭记账系统实战:从MVT设计到部署避坑

Web应用开发中,框架的选择决定了数据建模、业务逻辑与页面渲染的协作效率。Django作为Python主流Web框架,基于MVT(Model-Template-View)模式,通过ORM实现对象与关系数据库的映射,使开发者能高效构建数据驱动的管理系统。本文以家庭记账为应用场景,从项目初始化、模型字段选型、聚合查询到模板渲染,完整演示如何用Django打造一个支持多人协作、月度统计与本地部署的财务工具。同时聚焦静态文件配置、多用户数据隔离、删除级联等真实开发中最常遇到的坑,给出可落地的解决方案,帮助开发者避开

weixin_34161064的博客 326

Django基础入门⑩:Django查询数据库操作详讲

Django基础入门⑩:Django查询数据库操作详讲Django查询数据库操作 基础操作 查询数据 比较运算符 逻辑符号 去重查询 分组集合: 排序查询: 分页操作 模糊查询 多表查询 执行原生 S

weixin_50804299的博客 1万+

Django任务管理系统实战:模型设计、权限控制与部署优化

在Web应用开发中,使用Django框架构建业务管理系统是典型场景,而任务管理更是其中高频需求。Django自带的认证、ORM、Admin后台及迁移工具,让开发者能快速搭建包含用户管理、任务流转、状态追踪和权限隔离的完整服务。通过合理的模型字段设计(如状态枚举、外键关联)、对象级权限控制(Q对象与LoginRequiredMixin)以及查询优化(select_related、索引),可以显著提升系统健壮性与响应速度。这类系统广泛适用于个人待办、团队协作及企业轻量级项目管理。从通用CRUD到复杂权限数据隔离

weixin_34319374的博客 368

Django项目单字段的区间查询

在Django项目中会碰到一些需求就是查询某个表中的一些字段从某日到某日的数据,而且是对但字段查询这个时候我们有两两种方法解决

主要发布一些日常学习代码及理解 464

如何在Django中添加没有微秒的 DateTimeField 属性详解

主要给大家介绍了关于如何在Django中添加没有微秒的 DateTimeField 属性的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

django model 条件过滤 queryset.filter(**condtions)用法详解

主要介绍了django model 条件过滤 queryset.filter(**condtions)用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

django-mongoengine内部原理揭秘:它是如何实现MongoDB与Django桥接的?

想要在Django项目中使用MongoDB数据库吗?django-mongoengine正是这样一个神奇的工具!🚀 本文将深入揭秘这个项目的内部工作原理,让你了解它是如何巧妙地将MongoDB的灵活性无缝集成到Django框架中的。无论你是Django开发者还是MongoDB爱好者,这篇文章都将为你揭示这个桥接工具的核心奥秘。 ## 🎯 核心功能:Django与MongoDB的完美融合 d

gitblog_01117的博客 751

永磁同步电机功率计算实战:从公式到避坑指南(附Excel计算模板)

本文详细解析永磁同步电机(PMSM)功率计算的实战技巧,涵盖三维参数体系、三相与单相系统差异、动态工况补偿及常见计算陷阱。特别提供Excel计算模板,帮助工程师快速准确完成功率计算,避免工业应用中的常见错误,提升工作效率。

x8y9z0的博客 807

Django实现按天分组查询,一个月中每天产生的数据条数

Django实现按天分组查询,一个月中每天产生的数据条数查询思路操作全部代码 查询思路 首先在Django的models中要有DateTimeField数据类型的字段,假定我的字段是CreateTime。 但是DateTimeField在数据库中显示的是:2019-03-05 15:57:28.430312 思路: 按年月筛选数据 格式化日期为天 将数据按天分组 统计每组数据的条数 输出查询结果...

安心写bug的博客 9472

Linux系统搭建OpenClaw(原Clawdbot)全流程指南 最新版

工具定位:开源个人 AI 助手,支持文件读取、命令执行、多渠道交互(Telegram / 本地终端等);系统要求:主流 Linux 发行版(Ubuntu/Debian/CentOS 等),Node.js ≥22(核心依赖);安全提示:OpenClaw 为测试版,具备高权限操作能力,建议使用非主力机,配置权限白名单,避免接触敏感数据。

AI时代老码农的第二春 6561

RTC时钟芯片替换代码移植-IIC通信

1、问题 RTC时钟芯片由爱普生RX-8010SJ更换成大普INS5710A,两者都是IIC通信,更换大普芯片后时钟不走、以及报掉电错误。仿真分析原因是CPU和RTC芯片收发数据延时不够导致,根据爱普生芯片手册,8010收发数据不采取延时,但大普芯片采用同样方式读取不行(需要加延时) 2、RX-8010SJ手册说明(以读取数据为例) (1)寄存器读操作时序图 指定地址读操作: 1)CPU 发送开始条件[S] 2)CPU 传输RX-8010SJ 的从地址,用R/W 位设定写模式 3)检测从RX-8010

weixin_42851683的博客 2067

Django-Pandas时间序列处理教程:用to_timeseries方法轻松实现数据聚合与分析

Django-Pandas是一款专为Django项目设计的实用工具,它能帮助开发者轻松地在Django中集成强大的pandas数据分析功能。本文将重点介绍如何使用Django-Pandas中的`to_timeseries`方法,实现高效的数据聚合与时间序列分析,让你的Django项目数据分析能力提升一个台阶。 ## 🌟 为什么选择Django-Pandas的to_timeseries方法?

gitblog_00421的博客 159

常见的AXI总线仲裁器概述-AXI协议理解(一)

SoC 设计广泛采用共享总线式的片上通信,其中的仲裁器是共享总线的关键技术之一。AMBA AXI 总线协议以高性能、高频率的系统设计为目标,适合高带宽、低延迟的系统设计,可以达到高频率的操作而不需要复杂的总线桥,满足众多部件的接口要求,具备高度灵活的互联结构,并且向后兼容 AHB 和 APB 接口。

Paul 安的博客 1万+

Django Report Builder性能优化:处理大数据量报表的10个技巧

Django Report Builder是一款强大的Django ORM图形界面工具,让非技术人员也能轻松构建自定义查询和报表。但当面对海量数据时,性能问题可能成为瓶颈。本文将分享10个实用技巧,帮助您优化Django Report Builder在处理大数据量报表时的性能表现,确保报表生成既快速又稳定!🚀 ## 📊 理解Django Report Builder的数据处理流程 在开始优

gitblog_00782的博客 786

Ubuntu上通过FinalShell或Asbru访问CentOS虚拟机

使用FinalShell或Asbru远程连接虚拟机

howard2005的专栏 2279

AgentScope实战训练营:从零搭建一个完整的A2A Agent应用

2024年4月,Google在Google Cloud Next大会上正式提出了A2A(Agent-to-Agent)协议,这是一个开放协议,旨在让不同的AI Agent之间能够像微服务一样相互发现、相互调用。通俗地讲:A2A协议就是AI Agent世界的HTTP协议——有了它,一个Agent可以把自己的能力以标准化的方式暴露出去,另一个Agent可以无缝地发现并调用它。本文将基于阿里巴巴开源的(Apache 2.0协议),手把手带你从零搭建一个完整的A2A Agent应用。

program哲学 567

Django框架整理

Django是一个功能强大的web框架。 前言:框架模式简介 1、MVC和MTV框架模式:分层级进行管理 说到框架模式我们有必要简单的说下设计模式,了解下设计模式这个概念,因为有人对设计模式和框架模式的概念经常混淆 设计模式: 是一套被反复使用,多数人知道并经过分类的代码设计经验总结,是为了解决一些通用性问题的 目的:重用代码并保证代码的可靠性 设计模式分类:单例,抽象工厂 等等 23种模式 一句话总结:解

有用的话关个注,点个赞,收个藏🫶。 1713

嵌入式开发工程师笔试面试指南-Linux驱动

linux驱动

weixin_43491077的博客 475

Django框架:重写model_to_dict,支持对模型中时间字段的序列化,对json字符串的反序列化

django的model_to_dict如何支持时间类型的字段,如何重写django的model_to_dict方法,django如何快速对模型对象进行序列化操作,django快速将模型对象转成字典,model_to_dict如何支持模型时间类型的字段

weixin_46371752的博客 698

Python 爬虫实战:全面解析雪球网用户投资组合数据采集

本文介绍了如何使用 Python 爬虫技术,抓取雪球网用户的投资组合信息。通过模拟登录、解析页面内容等步骤,获取了用户的持仓数据。未来,可以进一步探索以下方向:

2201_76125261的博客 1304

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

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

基于协同过滤的电商推荐系统实战:从Django集成到Spark离线计算

推荐系统是解决信息过载、实现个性化内容分发的核心技术,其核心原理是通过分析用户历史行为数据,预测用户兴趣偏好。协同过滤作为经典算法,通过计算用户或物品间的相似度进行推荐,在电商、内容平台等场景中具有重要技术价值。本文聚焦于工程实践,探讨如何将协同过滤算法与Django Web框架结合,构建在线推荐服务,并介绍如何利用Spark等大数据工具进行离线模型训练与计算,实现一个从算法到服务的完整落地方案。

weixin_33875839的博客 361

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 【原创】python打造自动聊天回复机器人
下一篇: django正反向以及无关联数据表序列化的问题
Python_anning
博客等级 码龄9年 1409粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值