Django框架数据库(mysql)存储时间DateTimeField的用法

python测试开发django(18)--添加创建时间DateTimeField 前言 我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容后自动更新 在models.py建表的时候,设置create_time和update_time字段,类型为DateTimeField,添加auto_now_add和auto_now参数; DateTimeField 创建django... 阅读详情
AI摘要

本文介绍了在Django中如何使用DateTimeField高效存储和处理时间数据,包括自动设置时间和时区调整,以及字段获取和常见操作方法。

前言

        在数据库中存储时间虽然用字符串或者分下来用数字存储就可以解决问题,但是这样要么就是存储空间浪费,要么就是对于时间的运算操作效率很低。而数据库本身就自带了专门存储时间的类型,那在Django框架下如何用数据库存储时间数据呢?

        在mysql里面有个datetime类型,在Django的ORM语言里面对应的类是DateTimieField。

        下面就来介绍它的使用方法。

一、存储一个时间数据

首先,声明方式:

    createDate = models.DateTimeField(auto_now_add = True)

 那这个createDate字段的类型就是datetime类型。

这里创建的时候有两个参数auto_now_add和auto_now,它们默认都是False,他们的区别如下:

  • 设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。因此这个参数在需要存储“最后修改时间”的场景下,十分方便。需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django自带的admin管理器,那么该字段在admin中是只读的。
  • 设置为true时,auto_now_add会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新。该属性通常被用在存储“创建时间”的场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。

有一点要注意的是,auto_now_add默认是UTC(可以查看settings.py内TIME_ZONE的设置)时间,即国际标准时间我们是东8区,所以看到的是比当前时间要晚8个小时。这个问题的解决办法是:

settings.py中修改:

TIME_ZONE = 'Asia/Shanghai'
这样存入的时间就是东8区的时间了。

然后就是存储一个数据的时候,因为之前设置了auto_now_add =True,所以我们设置的时候设置属性为None即可:

 然后看看后台:

 没有问题。

二、DateTimeField类型字段数据的获取和常用使用方法

它的用法就和python的datetime类似。

我们可以获取一个记录看看:        

 运行的结果是:

那用法就和datetime.datetime一样了

print("年:"+str(obj.createTime.year)+"月:"+str(obj.createTime.month)+"日:"+str(obj.createTime.day)+"时:"+str(obj.createTime.hour)+"分:"+str(obj.createTime.minute)+"秒:"+str(obj.createTime.second))

结果:

 

总结:

Python和Django真好用。

 

 

        

 

Django消息管理器与MySQL数据库交互实践指南 消息管理器是Web开发中实现请求间临时通信的核心组件,其原理是通过序列化机制将状态信息存储在不同介质中。Django框架内置的消息框架(Message Framework)支持会话、Cookie和数据库三种存储方式,其中数据库存储特别适合需要持久化和分布式处理的场景。MySQL作为最流行的关系型数据库,与Django的深度整合需要考虑字符集设置(推荐utf8mb4)、存储引擎选择(InnoDB)和索引优化等关键技术点。通过合理配置消息存储后端和MySQL连接池,开发者可以构建高性能的消息系统,典型应用包括用 阅读详情

相关推荐

手把手教你用UC3844设计多路输出反激电源(附PCB布局避坑指南)

本文详细介绍了使用UC3844设计多路输出反激电源的实战技巧,包括核心电路设计、变压器参数计算、PCB布局优化及EMI抑制方法。通过实验室实测数据和项目经验,帮助工程师避开常见设计陷阱,提升电源性能和可靠性。特别附赠PCB布局避坑指南,助力高效完成开关电源设计。

weixin_30300225的博客 568

Django中DateTimeField的使用

Django中DateTimeField的使用及注意点 2,修改数据时自动更新时间 注:以上保存的时间带毫秒 3,使用replace(microsecond=0)去除毫秒

分享一点有用的知识 2558

NSFC结题报告下载脚本失效?3步教你手动修复下载按钮问题(2024最新版)

针对NSFC官网域名变更导致结题报告下载脚本失效的问题,本文提供了详细的手动修复指南。通过三步操作,教你如何修改用户脚本的域名匹配规则,恢复下载按钮功能,确保NSFC结题报告下载器能继续高效工作。

vscode6remote的博客 751

关于Django字段类型DateTimeField默认是不是不能为空的测试【DateTimeField学习过程记录】

关于Django字段类型DateTimeField默认是不是不能为空的测试【DateTimeField学习过程记录】

昊虹AI笔记 1225

说说PSTN、ISDN、 ADSL三种互联网接入方式的区别。

互联网的接入方式: 电话拨号接入(PSTN) ISDN接入 ADSL接入 Cable MODEM接入 局域网接入 光纤接入(FDDI) 卫星接入 DDN专线 目前来说,ADSL和Cable MODEM比较常用,今天我们就先来说说PSTN、ISDN和ADSL的区别。 电话拨号接入(PSTN/POTS,Public Switched Telephone Network / Public Oold Telephone Service) 数据终端设备(DTE)通过数据通信设备(DCE)再连

Winyaz的博客 2万+

如何评估一颗 AI 芯片的真实性能?TOPS、FPS 与 Token/sec 全解析

AI 芯片在实际部署中,其理论峰值性能往往无法反映真实执行效率。如何科学评估一颗 AI 芯片的“真实性能”,已成为芯片选型与系统集成环节中的关键技术问题。本文从工程实战角度出发,深入拆解当前常用性能评估指标(TOPS、FPS、Token/sec)背后的定义逻辑与使用陷阱,并结合推理模型部署与执行路径,系统讲解 AI 芯片在不同场景下的性能验证方法。通过对芯片算力-功耗-调度三维关系的分析,读者将掌握评估一颗 AI 芯片是否“跑得动业务”的核心判断能力。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3389

关于Django字段类型DateTimeField:如何设置为自动填充插入数据库行的时间为其值

关于Django字段类型DateTimeField,如何设置为自动填充插入数据库行的时间为其值

昊虹AI笔记 1088

Delft3D从入门到实践:安装、编译与首次模拟指南

本文为Delft3D初学者提供了一份详尽的从零开始指南。内容涵盖软件获取、许可证申请、图形界面安装、核心计算内核的编译环境搭建与编译步骤,以及最终整合运行首个水动力模拟的全流程。重点解决了Windows系统下Delft3D安装与编译的常见问题,帮助用户快速上手这一开源水动力与泥沙输运模拟工具。

weixin_29303701的博客 538

Django models.DatetimeField 保存到数据库时的格式化问题

"""数据库datetime类型字段格式化(%Y-%m-%d %H:%M:%S)precision:需要保留的小数位数"""create_time = DateTimeFieldFormat(verbose_name="创建时间", auto_now_add=True)update_time = DateTimeFieldFormat(verbose_name="更新时间", auto_now=True)

weixin_48312482的博客 1785

LVGL 拨盘菜单(Dial Menu)

h。

摸鱼专家 191

【TC397第2篇】TC397 EB MCAL开发指南:ADS MCAL Demo集成深度解析

通过本文的指导,我们完成了TC397 EB MCAL与ADS的深度集成,并成功运行了一个简单的MCAL Demo。这个案例不仅帮助我们理解了MCAL在实际开发中的应用,同时也展示了ADS作为一个强大的开发工具在嵌入式系统开发中的优势。在接下来的系列文章中,我们将进一步探讨MCAL的高级应用、优化技巧以及更多实用的开发案例。敬请关注,共同探索TC397 EB MCAL开发的更多精彩!

一直在水些技术小文 452

59. Django 2 DateTimeField格式 在程序中手动赋值

需求描述一般在数据模型中设置创建时间、更新时间的时候都会使用DateTimeField的格式,也会设置时间自动设置,示例如下:create_time = models.DateTimeF...

DevOps海洋的渔夫@专栏 1629

lvgl 9虚拟键盘控件 (lv_keyboard) 使用指南

是 LittlevGL 提供的一个虚拟键盘控件,适用于在图形界面中输入文本。与按钮矩阵类似,虚拟键盘预定义了多个键位布局,支持多种模式和自定义键位映射,能够满足各种文本输入需求。通过与文本区域 (Text Area) 的结合,键盘能够自动将输入的字符传送到指定区域。控件是 LittlevGL 提供的强大虚拟键盘解决方案,适用于任何需要文本输入的界面。通过预定义的键盘模式、自定义键位映射和文本区域自动填充功能,可以大大提升用户输入体验。无论是在嵌入式系统的用户界面中,还是在其他需要虚拟键盘的应用中,

m0_62599305的博客 2185

Django models通过DateTimeField保存到MySQL的时间的时区问题

最近开始使用Django开发一些系统,在models.py中设置一些数据库表结构并给日期时间字段赋初值,不过在使用的过程中,遇到一点问题。问题是,我本来服务器使用的市区是“Asia/Shanghai”(+08:00),然后用datetime.now保存到数据库中时,里面的时间总是比我的系统时间相差8小时(感觉是UTC时间),但是我也查看了MySQL数据库中的时区是“+08:00”的(在M...

dengguangming2014的博客 181

matlab_基于simulink的整流仿真电路,可控整流电路仿真模型

12脉波可控整流电路仿真模型,基于simulink的整流仿真电路。

AutoCAD机械作图标准图框-标准线型样式(高版本CAD).dwg

AutoCAD机械作图标准图框-标准线型样式1.纸幅面按尺寸大小可分为5种,图纸幅面代号分别为A0、A1、A2、A3、A4。图框右下角必须要有一标题栏,标题栏中的文字方向为与看图方向一致2.图线的种类有粗实线、细实线、波浪线、双折线、虚线、细点划线、粗点划线、双点划线等八类3.图样中,机件的可见轮廓线用粗实线画出,不可见轮廓线用虚线画出,尺寸线和尺寸界线用细实线画出来,对称中心线和轴线用细点划线画出。虚线、细实线和细点划线的图线宽度约为粗实线的1/3。4.比例是指图中图形尺寸与实物尺寸之比。5.比例1:2是指实物尺寸是图形尺寸的2倍,属于缩小比例。6.比例2:1是指图形尺寸是实物尺寸的2倍,属于放大比例。7.在画图时应尽量采用原值比例的比例,需要时也可采用放大或缩小的比例,其中1:2为缩小比例,2:1为放大比例无论采用那种比例图样上标注的应是机件的实际尺寸。8.图样中书写的汉字、数字和字母,必须做到字体工整,笔画清楚,间隔均匀,排列整齐,汉字应用长仿宋体书写。9.标注尺寸的三要素是尺寸界限、尺寸线、尺寸数字。

mysql datetime 毫秒_python测试开发django77.ORM如何添加 DateTimeField 不显示毫秒

前言使用 django 的 orm 建模型的时候,添加 DateTimeField 字段,发现存到数据库的日期时间格式是’2020-06-28 21:30:48.481516’我们一般习惯的格式是’2020-06-28 21:30:48’不带后面的6位数毫秒参考stackoverflow链接:https://stackoverflow.com/questions/46539755/how...

weixin_39689700的博客 599

基于单片机protues仿真的教室照明灯智能控制系统设计(仿真图、源代码、讲解视频)

基于单片机protues仿真的教室照明灯智能控制系统设计(仿真图、源代码、讲解视频)该设计为单片机protues仿真的教室照明灯智能控制系统,实现教室照明灯智能控制;功能如下:1、使用51单片机为核心控制;2、光敏电阻进行光照强度检测;3、开关模拟人体红外传感器,实现教室有人和无人检测;4、矩阵键盘4*4,实现开灯、关灯、自动模式、手动模式检测;5、继电器控制照明灯,实现教室照明灯智能控制;6、LCD1602液晶屏显示相关信息;7、仿真图、源代码、讲解视频;

mysql创建时间默认当前时间_python测试开发django20.添加创建时间DateTimeField

前言我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容后自动更新在models.py建表的时候,设置creat_time和update_time类型为DateTimeField,添加auto_now_add和auto_now参数DateTimeField创建django的mode...

weixin_39791653的博客 469

华为流程L1-L6业务流程深度细化到可执行

华为流程L1-L6业务流程深度细化到可执行

django存储时间到数据库不一致问题

再进行django开发过程中,存储到数据库时间与当前时间不一致问题。当两个地方都设置好了,此时存储到数据库的时间即为正确时间。在 settings.py 文件中 修改。可以采用的model 设置可以是。首选需要对当前时区进行设置。然后还有一个非常重要的一点。

coreyC的博客 789

Django--ORM 常用字段及属性介绍

orm 中的常用字段及属性介绍

weixin_43988680的博客 1651

python add_subplot label 不显示_python测试开发django77.ORM如何添加 DateTimeField 不显示毫秒...

前言使用 django 的 orm 建模型的时候,添加 DateTimeField 字段,发现存到数据库的日期时间格式是’2020-06-28 21:30:48.481516’我们一般习惯的格式是’2020-06-28 21:30:48’不带后面的6位数毫秒参考stackoverflow链接:https://stackoverflow.com/questions/46539755/how...

weixin_36377785的博客 424

开始Django之旅-part2_Django和数据库mysql

开始Django之旅-part2_Django和数据库mysql前言建立数据库创建models激活modelsAPIDjango Admin介绍创建一个管理员用户 上一篇:开始Django之旅-part1_构建你的第一个Django app 前言 假定你已经看了上一篇文章并且完成了任务,在这里,在下将带领你建立数据库,创建你的第一个model,然后快速的了解一下由Django自动生成的admin地...

qq_36638788的博客 544

Django消息管理器与MySQL数据库交互实践

消息管理器是Web开发中实现临时消息传递的核心组件,其底层原理基于请求-响应周期中的状态保持机制。在Django框架中,消息框架(Messages Framework)默认使用会话存储,但在需要持久化和高性能的场景下,与MySQL数据库集成是更优选择。MySQL作为成熟的关系型数据库,通过事务支持和索引优化等技术,能够确保消息数据的完整性和查询效率。这种技术组合特别适用于用户通知系统、操作日志记录等应用场景。本文以Django消息管理器与MySQL的交互为例,详细介绍了从环境配置、模型设计到性能优化的全流程

weixin_30825199的博客 400

mysql 视图 日期,基于类的视图MySQL DateTimeField接收到一个天真的日期时间

I am very new to Django and at the end of my rope and really need some help.I do not know how to use a "class based view" and change the incoming datetimefield from my MySQL database into a Time Zone ...

weixin_29596051的博客 188

Django Model操作

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 ORM是什么?:(在django中,根据代码中的类自动生成数据库的表也叫–code first) ORM:Object Relational Mapping(关系对象映射) 类名对应------》数据库中的表名 类属性对应-

SKY_PLA的博客 4526

Django ORM查询DateTime字段

最近在使用django的时候遇到一个问题,模型的一个字段是DateTimeFiled类型,并且auto_now_add=True,在做业务的时候,需要通过这个事件来检索信息,问题就出现了: DateTimeFiled类型字段在数据库存储格式是:2019-12-05 17:00:48.997827 而业务中查询使用的是字符串:2019-12-05 17:00:48 这时候使用django的O...

Chialin的博客 2847

django mysql数据类型_Django数据类型—数据库字段类型

Django数据类型—数据库字段类型字段一个模型最重要也是唯一必需的部分,是它定义的数据库字段字段名称限制1、字段名不能是python保留字,这样会导致python语法错误2、字段不能包含连续一个以上的下划线,这样会和Django查询语句语法冲突数据库列的类型AutoField 指一个能够根据可用ID自增的 IntegerField 。通常你不用直接使用它,如果你没有指定主键的话,系统会自动在你的...

weixin_33390343的博客 760
上一篇: Django框架下的form表单提交数据(及文件)获取的方法
下一篇: GameFrameWork框架(Unity3D)使用笔记(五)游戏主流程ProcedureMain
咖啡咖_CoffCa
博客等级 码龄6年 116粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咖啡咖_CoffCa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值