SQLAlchemy - Column常用参数

一、简介

SQLAIchemy 是一个功能强大的 SQL 工具包,支持多种数据库系统,并提供了丰富的 API来操作数据库。在 SQLAlchemy 中,Column 是用来定义数据库表的字段的,通过它可以指定字段的名称、数据类型、约束等参数。本文将详细介绍 Column 的常用参数配置,并给出相应的示例代码。

二、Column 常用参数配置

序号 参数名称 说明
1 name 字段的名称,默认为类属性的名称。指定ORM模型的中某个属性映射到表中的字段名。如果不指定,那么会使用这个属性的名字来作为字段名。如果指定了,就会使用指定的这个值作为表字段名。这个参数也可以当作位置参数,在第1个参数来指定。
2 type_ 字段的数据类型,如 Integer、String、Date 等。
3 primary_key 指定某个字段是否为主键,默认为 False。
4 unique 指定某个字段的值是否唯一,默认是False。
5 nullable 指定某个字段是否为空。默认值是True,可以为空。
6 default 默认值,当插入数据时没有提供该字段的值时使用。
7 index 是否创建索引,默认为 False。
8 autoincrement 是否为自增字段,仅适用于整数类型,默认为False。
9 onupdate 更新的时候执行的函数。在数据更新的时候会调用这个参数指定的值或者函数。在第一次插入这条数据的时候,不会用onupdate的值,只会使用default的值。常用于是字段(每次更新数据的时候都要更新该字段值)。

四、SQLAlchemy 常用数据类型:

序号 数据类型 说明
1 Integer 整形
2 Float 浮点类型
3 Boolean 传递True/False
4 DECIMAL 定点类型,具有小数点而且数值确定的数值
5 enum 枚举类型
6 DateTime 日期时间类型
7 Date 传递datetime.date()进去
8 Time 传递datatime.time()
9 String 字符类型,使用时需要指定长度,区别于Text类型
10 Text 文本类型
11 LONGTEXT 长文本类型

五、示例代码

下面是一个使用 SQLAlchemy Column 创建数据库表的示例代码,其中涉及了常用参数的使用:

from sqlalchemy import Column, Integer, String, DateTime, create_engine  
from sqlalchemy.ext.declarative import declarative_base  
from sqlalchemy import orm  
  
Base = declarative_base()  
  
class User(Base):  
    __tablename__ = 'users'   #当数据库的表名与类名不对应时需要设置
    __table_args__ = {'extend_existing': True}  #避免flask迁移数据库,二次创建表问题
  
    id = Column(Integer, primary_key=True, autoincrement=True)  
    username = Column(String(50), unique=True, nullable=False)  
    email = Column(String(100), unique=True, nullable=False)  
    password = Column(String(100), nullable=False)  
    created_at = Column(DateTime, default=datetime.datetime.utcnow)  
    updated_at = Column(DateTime, onupdate=datetime.datetime.utcnow)  
  
# 创建数据库引擎  
engine = create_engine('sqlite:///example.db')  
  
# 创建表  
Base.metadata.create_all(engine)  
  
# 创建会话  
Session = orm.sessionmaker(bind=engine)  
session = Session()

在上面的示例代码中,我们定义了一个名为 User的类,它继承自 Base__tablename__指定了数据库表的名称为 users。在 User 类中,我们定义了几个字段,分别是idusernameemailpasswordcreated_atupdated_at。这些字段都使用了Column 类来定义,并设置了相应的参数。例如,id字段设置为主键,并开启自增;usernameemail字段设置为唯一且不可为空;created_atupdated_at 字段设置了默认值和更新时的值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容