前言
上一节内容中,我们使用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数据库表的增、删、查、改操作案例到这里就结束了,我们下期见。。。。。。