SQLAlchemy 是Python中最有名的ORM框架。

装置SQLAlchemy:

$ pip install sqlalchemy

导入SQLAlchemy,并初始化DBSession:

from sqlalchemy import Column, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_base# 创建对象的基类:Base = declarative_base()# 定义User对象:class User(Base):    # 表的名字:    __tablename__ = 'user'    # 表的构造:    id = Column(String(20), primary_key=True)    name = Column(String(20))# 初始化数据库连贯:engine = create_engine('mysql+mysqlconnector://root:root@localhost:3306/test')# 创立DBSession类型:DBSession = sessionmaker(bind=engine)

向数据库表中增加一行记录:

# 创立session对象:session = DBSession()# 创立新User对象:new_user = User(id='5', name='Bob')# 增加到session:session.add(new_user)# 提交即保留到数据库:session.commit()# 敞开session:session.close()

查问数据:

# 创立Session对象:session = DBSession()# 创立Query查问:user = session.query(User).filter(User.id=='5').one()# 打印类型和对象的name属性:print('type:', type(user))print('name:', user.name)# 敞开Session:session.close()

定义一对多关系如下:

class User(Base):    __tablename__ = 'user'    id = Column(String(20), primary_key=True)    name = Column(String(20))    # 一对多:    books = relationship('Book')class Book(Base):    __tablename__ = 'book'    id = Column(String(20), primary_key=True)    name = Column(String(20))    # “多”的一方的是通过外键关联到user表的:    user_id = Column(String(20), ForeignKey('user.id'))