本文共 2127 字,大约阅读时间需要 7 分钟。
SQLAlchemy 是一个功能强大的 ORM框架,基于数据库 API,通过对象关系映射将对象转换为 SQL 语句并执行操作。以下是关于 SQLAlchemy 的详细指南。
通过 pip3 安装 SQLAlchemy:
pip3 install sqlalchemy
SQLAlchemy 使用 Dialect 与数据库通信,支持多种数据库,如 MySQL、PostgreSQL、Oracle 等。连接方式如下:
engine = create_engine( "mysql+mysqldb://root:123@127.0.0.1:3306/s11", max_overflow=5)
在 SQLAlchemy 中,事务操作通过 engine.begin() 启动,确保数据一致性:
with engine.begin() as conn: conn.execute("insert into table (x, y, z) values (1, 2, 3)") conn.execute("my_special_procedure(5)") 通过 MetaData 和 Table 定义数据库表结构:
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaDatametadata = MetaData()user = Table('user', metadata, Column('id', Integer, primary_key=True), Column('name', String(20))) 创建表结构:
engine = create_engine("mysql+mysqldb://root:123@127.0.0.1:3306/s11", max_overflow=5)metadata.create_all(engine) SQLAlchemy 提供了简单的增删改查方法:
conn = engine.connect()conn.execute(user.insert(), {'id': 7, 'name': 'seven'})conn.close() sql = user.delete().where(user.c.id > 1)conn.execute(sql)
sql = user.update().values(fullname=user.c.name)conn.execute(sql)
result = conn.execute(sql).fetchall()
使用 ORM 模块通过类操作数据库:
from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, Stringfrom sqlalchemy.orm import sessionmakerfrom sqlalchemy import create_engineengine = create_engine("mysql+mysqldb://root:123@127.0.0.1:3306/s11", max_overflow=5)Base = declarative_base()class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50))Session = sessionmaker(bind=engine)session = Session()# 增u = User(id=2, name='sb')session.add(u)session.commit()# 删session.query(User).filter(User.id > 2).delete()session.commit()# 改session.query(User).filter(User.id > 2).update({'cluster_id': 0})session.commit()# 查ret = session.query(User).filter_by(name='sb').first() show status like 'Threads%'。希望这篇文章能为您提供关于 SQLAlchemy 的全面的指导。
转载地址:http://pynuz.baihongyu.com/