(三)python实战——使用SQLAlchemy完成mysql数据库表的增、删、查、改操作案例

前言

上一节内容中,我们使用pymysql库完成了对数据库表增删查改的基本操作,本节内容我们使用SQLAlchemy完成对数据库表增删查改的基本操作,SQLAlchemy是Python SQL工具包和对象关系映射器,为应用程序开发人员提供了SQL的全部功能和灵活性。SQLAlchemy提供了一整套众所周知的企业级持久性模式,专为高效和高性能的数据库访问而设计,适用于简单的Python域语言。官方文档地址:SQLAlchemy Documentation — SQLAlchemy 2.0 Documentation

正文

①安装mysql的依赖库SQLAlchemy库

命令:

pip install sqlalchemy

②创建user用户表的实体映射类User

 - 引入sqlalchemy,定义user表的映射字段信息

from sqlalchemy import Column, String, Integer, create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy.orm import sessionmaker

# 申明基类对象
Base = declarative_base()


# 定义user表实体对象
class User(Base):
    # 定义表名
    __tablename__ = 'user'
    # 定义字段
    id = Column(Integer, primary_key=True)
    name = Column(String(255))
    age = Column(Integer)

    def __repr__(self):
        return "User(id:{},name:{},age:{})".format(self.id, self.name, self.age)

③创建mysql的连接及操作数据库的session对象的类MysqlSqlalchemy

from sqlalchemy import Column, String, Integer, create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy.orm import sessionmaker

# 申明基类对象
Base = declarative_base()


# 数据库连接初始化
class MysqlSqlalchemy(object):
    def __init__(self):
        # 创建mysql连接引擎
        engine = create_engine("mysql+pymysql://root:root@192.168.110.88:3306/ht-atp",
                               echo=True)
        # 创建表
        Base.metadata.create_all(engine, checkfirst=True)
        # 创建mysql的session连接对象
        self.session = sessionmaker(bind=engine)()

④新增一条user用户数据

if __name__ == '__main__':
    # 初始化mysql数据库连接,获取session
    session = MysqlSqlalchemy().session

    # 新增一条数据
    user = User(name='xiaoming', age=23)
    session.add(user)
    session.commit()

⑤新增多条user用户数据 

if __name__ == '__main__':
    # 初始化mysql数据库连接,获取session
    session = MysqlSqlalchemy().session

    # 新增多条数据
    datas = [
        User(name='张三', age=20),
        User(name='李四', age=21),
        User(name='王五', age=22),
    ]
    session.add_all(datas)
    session.commit()

⑥查询user用户表中的全部数据

if __name__ == '__main__':
    # 初始化mysql数据库连接,获取session
    session = MysqlSqlalchemy().session

    # 查询user用户表中的全部数据
    result = session.query(User.id, User.name, User.age).all()
    print(result)

⑦更新user用户表中的数据-方式一

if __name__ == '__main__':
    # 初始化mysql数据库连接,获取session
    session = MysqlSqlalchemy().session


    # 更新user用户表中的数据-方式一
    # 先查询用户id为1的数据
    user_id = 1
    query_user = session.query(User).filter_by(id=user_id).first()
    # 更新用户id为1的数据
    query_user.name = "赵六"
    query_user.age = 25
    # 提交修改
    session.commit()

⑧更新user用户表中的数据-方式二

if __name__ == '__main__':
    # 初始化mysql数据库连接,获取session
    session = MysqlSqlalchemy().session


    # 使用update()方法直接更新字段值
    user_id = 1
    session.query(User).filter(User.id == user_id).update({User.name: "王五", User.age: 18})
    session.commit()

⑨ 根据id删除一条user表中用户数据

if __name__ == '__main__':
    # 初始化mysql数据库连接,获取session
    session = MysqlSqlalchemy().session


    # 根据id删除数据
    user_id = 1
    del_count = session.query(User).filter(User.id == user_id).delete()
    print('删除数目:', del_count)
    session.commit()

结语

关于使用SQLAlchemy完成mysql数据库表的增、删、查、改操作案例到这里就结束了,我们下期见。。。。。。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厉害哥哥吖

您的支持是我创作下去的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值