sqlalchemy 数据库操作
1、简介
一种ORM
2、安装
pip3 install -i https://pypi.douban.com/simple sqlalchemy
3、连接数据库
from sqlalchemy import create_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 import declarative_base from sqlalchemy import Column from sqlalchemy import Integer,String Base = declarative_base() class Users(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(32), index=True, nullable=False) depart_id = Column(Integer)
b、创建/删除表
from sqlalchemy import create_engine def create_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) def drop_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那样可以更新,只能删除和重建