Sqlalchemy是一个连接数据库并实现ORM操作的模块
首先我们要用它要了解他是怎么实现的。
首先导入需要的包
from sqlalchemy import Column,String,create_enging....
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
由于sqlalchemy默认没有使用mysqldb完成和数据库的连接操作,而且mysqldb没有支持python3.4+版本,要使用pymysql替代
import pymysql
pymysql.install_as_MySQLdb()
1.再导入所有的包后,我们要构建一个基础模型类,我们自定义的模型类要继承这个类型
BaseModel = declarative_base()
构建和数据库的连接引擎对象:通过引擎对象可以直接操作数据库的sql语句
engine = create_engine
(’mysql://root:root@localhost:3306/user’,echo=True)
构建和数据库的会话对象
db_session = sessionmaker(bind=engine)
定义实体类
class User(BaseModel):
__tablename__ = ‘表名’
Id = Column(Integer,primary_key=True)
Username = Column(String(50))
...
自动创建表方法
【BaseModel.metadata.creat_all(engine)】
增删改查
from . import medels
from sqlalchemy import and_
session=medels.db_session()
#定义基础类
class BaseHandle(object):
def creat_obj(self,*args,**kwargs):
user = medels.User(*args,**kwargs)
session.add(user)
session.commit()
session.close()
def delete_obj(self,*args,**kwargs):
res=session.query(medels.User).filter(*args, **kwargs).delect()
# 增删改操作完成,提交事务【提交数据】
session.commit()
# 数据库操作完成之后,关闭和数据库之间的会话
session.close()
def update_obj(self,*args,**kwargs):
session.query(medels.User).filter(and_(*args,**kwargs)).update(and_(*args,**kwargs))
session.commit()
session.close()
def find_one(self,*args,**kwargs):
res = session.query(medels.User).filter(and_(*args,**kwargs)).one()
# session.commit()
# 数据库操作完成之后,关闭和数据库之间的会话
# session.close()
return res
def find_multi(self,*args,**kwargs):
# 查找一条数据
res = session.query(medels.User).filter(and_(*args, **kwargs)).all()
# # 增删改操作完成,提交事务【提交数据】
# session.commit()
# # 数据库操作完成之后,关闭和数据库之间的会话
# session.close()
return res
#定义用户管理类
class UserManage(BaseHandle):
pass