Sqlalchemy模型创建时间避弹坑
创建的模型
from back.database import Base
from sqlalchemy import String, Integer, DateTime, Boolean, Column
from datetime import datetime
class User(Base):
__tablename__ = 'user'
ID = Column(Integer, primary_key=True, autoincrement=True)
Name = Column(String(30), nullable=False)
Code = Column(String(30), nullable=False, unique=True)
Age = Column(Integer, default=18)
PassWord = Column(String(200), nullable=False)
CreateTime = Column(DateTime, default=datetime.now())
-
上面代码中CreateTime字段默认值为获取当前时间
-
启动程序后,调用接口测试,code分别是string1 、string2
-
查看数据库表中的数据,发现创建时间都是一样的,不论间隔多久调用接口。貌似就是程序跑起来后获取到的当前时间,显然不符合实际的需求
改造
from back.database import Base
from sqlalchemy import String, Integer, DateTime, Boolean, Column, func
from datetime import datetime
# 用户表
class User(Base):
__tablename__ = 'user'
ID = Column(Integer, primary_key=True, autoincrement=True)
Name = Column(String(30), nullable=False)
Code = Column(String(30), nullable=False, unique=True)
Age = Column(Integer, default=18)
PassWord = Column(String(200), nullable=False)
CreateTime = Column(DateTime, default=func.now())#重点只改了这里
sqlalchemy.fun.now源码
class now(GenericFunction):
"""The SQL now() datetime function.
SQLAlchemy dialects will usually render this particular function
in a backend-specific way, such as rendering it as ``CURRENT_TIMESTAMP``.
"""
type = sqltypes.DateTime
inherit_cache = True
至此每次调用接口后,创建时间就是实时获取的当前时间了
本文来自博客园,作者:弩哥++,转载请注明原文链接:https://www.cnblogs.com/bangbangzoutianya/p/16655611.html
分类:
FastApi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)