📜  SQLAlchemy – 映射表列(1)

📅  最后修改于: 2023-12-03 15:05:19.636000             🧑  作者: Mango

SQLAlchemy – 映射表列

SQLAlchemy是一个用Python语言编写的SQL工具,它为应用程序提供了SQL数据库的基本元素和高级ORM功能。其中一个重要的功能就是映射表列。

映射表列

映射表列(Mapped Column)代表数据库中一列的类型和数据类型。在SQLAlchemy中,映射表列直接映射到数据库表中的一个列。映射表列有许多类型,例如:

  • INTEGER:整数类型
  • FLOAT:浮点数类型
  • BOOLEAN:布尔类型
  • DATE:日期类型

为了定义映射表列,我们需要使用SQLAlchemy的Column类。例如,我们可以定义一个名为User的类来表示用户表,其中包括id、username和password等属性,其中id属性为整数类型:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:///example.db')
Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    
    id = Column(Integer, primary_key=True)
    username = Column(String(50), unique=True)
    password = Column(String(50))

在这个示例中,我们使用了create_engine()函数创建了一个SQLite数据库引擎对象,使用declarative_base()函数创建了一个基类Base,然后定义了一个名为User的类,该类继承了Base类。

在User类中,我们定义了每个属性作为Column对象的一个实例。其中,id属性是主键(primary key),它是一个整数类型的映射表列。username和password属性是String类型的映射表列。在username属性中,我们使用了unique=True参数,以保证该列中的值是唯一的。

现在我们可以使用这个User类来创建数据库表,只需要调用Base类的metadata对象中的create_all()方法即可:

Base.metadata.create_all(engine)
结论

在SQLAlchemy中,映射表列使我们能够定义数据模型并直接映射到数据库表中的列。它提供了许多常见数据类型,如整数、浮点数、布尔值和日期。通过使用Column类,我们可以定义属性及其相应的数据类型,并使用ORM来操作数据库表,使代码更易读和维护。