SQLAlchemy有哪些常用的操作方法

SQLAlchemy是一个流行的Python SQL工具包和对象关系映射(ORM)库,它提供了一系列丰富的操作方法用于数据库操作。以下是一些SQLAlchemy常用的操作方法:

1. 创建表

在SQLAlchemy中,可以通过声明式或经典式两种方式创建表。声明式方式较为常用,通过定义Python类来映射数据库表。

  • 声明式方式:使用declarative_base()创建一个基类,然后继承这个基类定义模型类,每个模型类对应数据库中的一个表。

python

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

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)

2. 插入数据

通过session对象来管理数据库会话,可以使用add()或add_all()方法插入单条或多条记录。

python

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

new_user = User(name='Alice')
session.add(new_user)
session.commit()

# 或者批量插入
users = [User(name='Bob'), User(name='Charlie')]
session.add_all(users)
session.commit()

3. 查询数据

SQLAlchemy提供了强大的查询API,可以通过session.query()方法构建查询。

  • 基本查询:查询所有记录。

python

users = session.query(User).all()
  • 条件查询:使用filter()或filter_by()方法进行条件过滤。

python

# 使用filter
user = session.query(User).filter(User.name == 'Alice').first()

# 使用filter_by(注意:filter_by不支持比较运算符,仅支持直接等于的比较)
user = session.query(User).filter_by(name='Alice').first()

排序与分页:通过order_by()进行排序,limit()和offset()进行分页。

python

# 排序
users = session.query(User).order_by(User.name.asc()).all()

# 分页
page_users = session.query(User).order_by(User.id).limit(10).offset(20).all()

4. 更新数据

更新数据通常通过查询找到记录后,直接修改对象的属性,然后提交会话。

python

user = session.query(User).get(1) # 假设主键为1
user.name = 'Alice Updated'
session.commit()

或者,使用update()方法批量更新(注意:update()方法会直接执行SQL更新语句,不会修改session中的对象状态)。

python

session.query(User).filter(User.name == 'Alice').update({"name": "Alice Renamed"}, synchronize_session=False)
session.commit()

5. 删除数据

删除数据也是通过查询找到记录后,使用delete()方法或直接调用对象的delete()方法(如果ORM模型定义了该方法),然后提交会话。

python

user = session.query(User).get(1)
session.delete(user)
session.commit()

# 或者批量删除
session.query(User).filter(User.name == 'Alice').delete(synchronize_session=False)
session.commit()

6. 原生SQL语句

虽然SQLAlchemy主要是一个ORM库,但它也支持执行原生SQL语句。

python

from sqlalchemy import text

result = session.execute(text("SELECT * FROM users WHERE name = :name"), {'name': 'Alice'})
for row in result:
    print(row)

以上就是SQLAlchemy常用的一些操作方法,涵盖了创建表、插入数据、查询数据、更新数据和删除数据等基本数据库操作。需要注意的是,这些操作都需要在已经创建了数据库引擎(engine)和会话(session)的前提下进行。


推荐一本在统信UOS上Web应用开发的非常不错的书:《Flask Web 应用开发项目实战——基于 Python 和统信 UOS》及其配套计算机操作指南。《Flask Web 应用开发项目实战 基于 Python 和统信 UOS》作为一本深入介绍Flask框架与统信UOS操作系统结合应用的书籍,为开发者提供了丰富的理论知识与实践案例。然而,对于初学者而言,从源码下载到项目部署的全过程可能仍显得复杂且充满挑战。因此,《Flask Web 应用开发项目实战 基于 Python 和统信 UOS》配套计算机操作指南应运而生,旨在为读者提供一条清晰、顺畅的学习路径,确保每位读者都能顺利上手并成功运行Flask项目。

SQLAlchemy有哪些常用的操作方法_第1张图片

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(FlaskWeb,python,后端,web3,flask,linux)