SQLAlchemy 是Python中最有名的ORM框架。mysql
安装SQLAlchemy:sql
$ pip install sqlalchemy
导入SQLAlchemy,并初始化DBSession:数据库
from sqlalchemy import Column, String, create_engine from sqlalchemy.orm import sessionmaker from 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对象: 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()
定义一对多关系以下:code
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'))