欢迎光临散文网 会员登陆 & 注册

SQLAlchemy学习-7.Column 设置日期时间类型

2022-07-16 21:19 作者:限量版范儿  | 我要投稿

前言

在表里面一般会设置创建时间和更新时间,创建时间是数据写入时候的时间,更新时间是表的数据有更新,自动获取当前时间。
onupdate 是在更新时执行该方法,一般用在更新时间字段上。

DateTime 日期时间

Column 字段设置 DateTime 日期时间类型

from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine, Column, Integer, String, DateTime, Date from datetime import datetime Base = declarative_base() class User(Base):    """银行卡基本信息"""    __tablename__ = 'user'  # 数据库表名    id = Column(Integer, primary_key=True, autoincrement=True)    name = Column(String(10), nullable=False)    birth = Column(Date)  # 生日    create_time = Column(DateTime, default=datetime.now)    update_time = Column(DateTime, onupdate=datetime.now, default=datetime.now)    def __repr__(self):        return f"<User(id={self.id}, name={self.name}, " \               f"tel={self.tel}, tel={self.age})>" if __name__ == '__main__':    DB_URI = 'mysql+pymysql://root:123456@localhost:3306/web'    engine = create_engine(DB_URI)    # Base.metadata.drop_all(engine)  # 清空了重新创建    Base.metadata.create_all(engine)  # 将模型映射到数据库中

执行后,数据库中表如下

添加数据

添加数据时,create_time 和 update_time 会自动获取当前时间

from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from xuexi.a7 import User engine = create_engine('mysql+pymysql://root:123456@localhost:3306/web') # 把当前的引擎绑定给这个会话 Session = sessionmaker(bind=engine) # 实例化 session = Session() # 新增数据 obj = User(name='yoyo2', birth='2021-01-07') session.add(obj)  # 添加到session session.commit()  # 提交到数据库

添加到数据库中的数据

onupdate 更新时间

onupdate 是在更新时执行该方法

session.query(User).filter(User.name == 'yoyo2').update({'birth': '2021-01-08'}) session.commit()

update_time 字段设置了 onupdate=datetime.now,更新的时候会自动获取当前时间

来源:https://www.dianjilingqu.com/433908.html

SQLAlchemy学习-7.Column 设置日期时间类型的评论 (共 条)

分享到微博请遵守国家法律