1、简介
一种ORM
2、安装
pip3 install -i https://pypi.douban.com/simple sqlalchemy
3、连接数据库
from sqlalchemy importcreate_engine engine =create_engine( "mysql+pymysql://root:密码@127.0.0.1:3306/数据库名称?charset=utf8", max_overflow=0, #超过连接池大小外最多创建的连接 pool_size=5, #连接池大小 pool_timeout=30, #池中没有线程最多等待的时间,否则报错 pool_recycle=-1 #多久之后对线程池中的线程进行一次连接的回收(重置) )
4、创建/删除表(包含连接数据库)
a、表类
from sqlalchemy.ext.declarative importdeclarative_base from sqlalchemy importColumn from sqlalchemy importInteger,String Base =declarative_base() classUsers(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(32), index=True, nullable=False) depart_id = Column(Integer)
b、创建/删除表
from sqlalchemy importcreate_engine defcreate_all(): engine =create_engine( "mysql+pymysql://root:密码@127.0.0.1:3306/数据库?charset=utf8", max_overflow=0, #超过连接池大小外最多创建的连接 pool_size=5, #连接池大小 pool_timeout=30, #池中没有线程最多等待的时间,否则报错 pool_recycle=-1 #多久之后对线程池中的线程进行一次连接的回收(重置) ) Base.metadata.create_all(engine) defdrop_all(): engine =create_engine( "mysql+pymysql://root:密码@127.0.0.1:3306/数据库?charset=utf8", max_overflow=0, #超过连接池大小外最多创建的连接 pool_size=5, #连接池大小 pool_timeout=30, #池中没有线程最多等待的时间,否则报错 pool_recycle=-1 #多久之后对线程池中的线程进行一次连接的回收(重置) ) Base.metadata.drop_all(engine) if __name__ == '__main__': #drop_all() create_all()
注意:sqlalchemy的表类不像django的orm那样可以更新,只能删除和重建