连接数据库
SQLAlchemy的数据库连接是先定义engine
,再由engine
定义session
。engine
的定义可以使用以下语句。
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqlconnector://root:password@localhost:3306/test')
create_engine()
接受一个连接串作为参数,连接串的格式为:数据库类型+数据库驱动名称://用户名:口令@服务地址:端口号/数据库名
。如果需要连接池支持,可以在create_engine()
中使用pool_size
来定义连接池大小;此外还可以使用max_overflow
、pool_recycle
、pool_timeout
等来定义相关的连接池特性。如果需要更换连接池实现需要用poolclass
来指定使用何种特性的连接池,连接池的实现可以从sqlalchemy.pool
中寻找。
定义engine
之后,可以使用以下语句建立适用的Session
类。
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
之后就可以使用session = Session()
来获得用于数据库操作的连接会话了。连接会话是用来缓存所有数据库操作的缓存区,在其中对数据表的修改,会在会话提交时采用事务完成数据的更新。