sqlalchemy操作

来源:互联网 发布:手机制作动漫软件 编辑:程序博客网 时间:2024/05/20 15:39

Sqlalchemy是一个连接数据库并实现ORM操作的模块
首先我们要用它要了解他是怎么实现的。
首先导入需要的包

from sqlalchemy import Column,String,create_enging....from sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_base由于sqlalchemy默认没有使用mysqldb完成和数据库的连接操作,而且mysqldb没有支持python3.4+版本,要使用pymysql替代import pymysqlpymysql.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 medelsfrom 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