sqlalchemy操作

本文介绍了Sqlalchemy作为数据库ORM模块的使用,包括如何导入所需包及执行基本的增删改查操作。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值