真正算得上全面的ORM框架必然是我们的SQLAlchemy ORM框架,它可以在任何使用SQL查询时使用
当然了,无论是使用什么ORM框架,都是为了方便不熟练数据库的同学使用的,我个人还是比较推崇原生 SQL ,也建议每位同学攻克 SQL 的难关
废话不多说,我们来看一下 SQLAlchemy 如何使用:
单表操作:
1.创建
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String #创建基类,相当于Django中的 models.Model,被各个数据表类所继承 Base = declarative_base() # ##################### 单表示例 ######################### # 创建一张数据表 class Users(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(32), index=True) __table_args__ = ( # UniqueConstraint('id', 'name', name='uix_id_name'), # Index('ix_id_name', 'name', 'extra'), ) # 创建另一张数据表 class School(Base): __tablename__ = "school" id = Column(Integer,primary_key=True,autoincrement=True) name = Column(String,unique=True) # 创建数据库链接 engine = create_engine( "mysql+pymysql://root:DragonFire@localhost:3306/dragon?charset=utf8", max_overflow=0, # 超过连接池大小外最多创建的连接 pool_size=5, # 连接池大小 pool_timeout=30, # 池中没有线程最多等待的时间,否则报错 pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置) ) # 通过Base.metadata找到所有继承 Base 的数据表class Base.metadata.create_all(engine) # SQLAlchemy数据表进行修改后,无法直接进行更新,只能删除表后进行操作,重新进行操作 创建基类和第一张数据表