当前位置:   article > 正文

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

sqlalchemy 更新数据

前言

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

正文

①安装mysql的依赖库SQLAlchemy库

命令:

pip install sqlalchemy

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

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

  1. from sqlalchemy import Column, String, Integer, create_engine
  2. from sqlalchemy.orm import declarative_base
  3. from sqlalchemy.orm import sessionmaker
  4. # 申明基类对象
  5. Base = declarative_base()
  6. # 定义user表实体对象
  7. class User(Base):
  8. # 定义表名
  9. __tablename__ = 'user'
  10. # 定义字段
  11. id = Column(Integer, primary_key=True)
  12. name = Column(String(255))
  13. age = Column(Integer)
  14. def __repr__(self):
  15. return "User(id:{},name:{},age:{})".format(self.id, self.name, self.age)

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

  1. from sqlalchemy import Column, String, Integer, create_engine
  2. from sqlalchemy.orm import declarative_base
  3. from sqlalchemy.orm import sessionmaker
  4. # 申明基类对象
  5. Base = declarative_base()
  6. # 数据库连接初始化
  7. class MysqlSqlalchemy(object):
  8. def __init__(self):
  9. # 创建mysql连接引擎
  10. engine = create_engine("mysql+pymysql://root:root@192.168.110.88:3306/ht-atp",
  11. echo=True)
  12. # 创建表
  13. Base.metadata.create_all(engine, checkfirst=True)
  14. # 创建mysql的session连接对象
  15. self.session = sessionmaker(bind=engine)()

④新增一条user用户数据

  1. if __name__ == '__main__':
  2. # 初始化mysql数据库连接,获取session
  3. session = MysqlSqlalchemy().session
  4. # 新增一条数据
  5. user = User(name='xiaoming', age=23)
  6. session.add(user)
  7. session.commit()

⑤新增多条user用户数据 

  1. if __name__ == '__main__':
  2. # 初始化mysql数据库连接,获取session
  3. session = MysqlSqlalchemy().session
  4. # 新增多条数据
  5. datas = [
  6. User(name='张三', age=20),
  7. User(name='李四', age=21),
  8. User(name='王五', age=22),
  9. ]
  10. session.add_all(datas)
  11. session.commit()

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

  1. if __name__ == '__main__':
  2. # 初始化mysql数据库连接,获取session
  3. session = MysqlSqlalchemy().session
  4. # 查询user用户表中的全部数据
  5. result = session.query(User.id, User.name, User.age).all()
  6. print(result)

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

  1. if __name__ == '__main__':
  2. # 初始化mysql数据库连接,获取session
  3. session = MysqlSqlalchemy().session
  4. # 更新user用户表中的数据-方式一
  5. # 先查询用户id为1的数据
  6. user_id = 1
  7. query_user = session.query(User).filter_by(id=user_id).first()
  8. # 更新用户id为1的数据
  9. query_user.name = "赵六"
  10. query_user.age = 25
  11. # 提交修改
  12. session.commit()

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

  1. if __name__ == '__main__':
  2. # 初始化mysql数据库连接,获取session
  3. session = MysqlSqlalchemy().session
  4. # 使用update()方法直接更新字段值
  5. user_id = 1
  6. session.query(User).filter(User.id == user_id).update({User.name: "王五", User.age: 18})
  7. session.commit()

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

  1. if __name__ == '__main__':
  2. # 初始化mysql数据库连接,获取session
  3. session = MysqlSqlalchemy().session
  4. # 根据id删除数据
  5. user_id = 1
  6. del_count = session.query(User).filter(User.id == user_id).delete()
  7. print('删除数目:', del_count)
  8. session.commit()

结语

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/605727
推荐阅读
相关标签
  

闽ICP备14008679号