Python SQLAlchemy建立模型基础关系模式过程详解

  • Post category:Python

本文将为大家详细讲解使用 Python SQLAlchemy 建立模型基础关系模式的过程。以下是具体的步骤:

一、安装SQLAlchemy模块

安装 SQLALCHEMY 模块是使用该模块的第一步,可以在命令行中使用 pip install sqlalchemy 来进行安装。

二、设计数据表结构

在使用 SQLAlchemy 进行项目开发前,需要明确好数据表之间的结构,可以使用 ER 图进行数据库设计。根据 ER 图的设计可以进行相应的数据表设计,在 Python 中,数据表结构的定义主要使用 SQLAlchemy 中的 Table 类。

例如,对于一张 users 表,可以如下定义数据表结构:

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from sqlalchemy.orm import mapper, sessionmaker

engine = create_engine('mysql+pymysql://root:password@localhost:3306/test', encoding='utf-8', echo=True)
metadata = MetaData()

User = Table('users', metadata,
    Column('user_id', Integer, primary_key=True),
    Column('username', String(50)),
    Column('email', String(50)),
    Column('password', String(50))
)

class User(object):
    def __init__(self, user_id, username, email, password):
        self.user_id = user_id
        self.username = username
        self.email = email
        self.password = password

mapper(User, User)
Session = sessionmaker(bind=engine)
session = Session()

这段代码定义了一个名为 users 的数据表,其中包含 user_id、username、email、password 四个字段。同时定义了一个 User 类,将 User 类与 users 表相关联,为 User 类提供增删改查等操作。

三、创建数据表

在完成数据表的结构定义后,需要使用 SQLAlchemy 创建相应的数据表。可以使用 SQLAlchemy 中的 create_all() 方法来完成对应的操作。

metadata.create_all(engine)

上述代码将创建所有在 metadata 中定义的数据表。

四、插入数据

在完成数据表的定义及创建后,可以向数据表中插入数据,可以使用如下的方式进行:

user = User(user_id=1, username='admin', email='admin@localhost', password='admin')
session = Session()
session.add(user)
session.commit()

上述代码向 users 表中插入了一条用户数据,并使用 Session 类对操作进行管理。

五、查询数据

完成数据的插入后,可以使用 SQLAlchemy 对数据进行查询,以下是一些示例:

1.查询数据表中全部数据:

users = session.query(User).all()
for user in users:
    print(user.user_id, user.username, user.email, user.password)

2.条件查询:

例如,查询 users 表中 username 字段为 admin 的数据:

users = session.query(User).filter(User.username == 'admin').all()
for user in users:
    print(user.user_id, user.username, user.email, user.password)

3.排序查询:

使用 order_by() 方法可以对数据进行排序,例如,查询 users 表中,按照 user_id 字段升序排序后的数据:

users = session.query(User).order_by(User.user_id).all()
for user in users:
    print(user.user_id, user.username, user.email, user.password)

以上便是使用 Python SQLAlchemy 建立模型基础关系模式的过程,希望对大家有所帮助。