赞
踩
上一节内容中,我们使用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数据库表的增、删、查、改操作案例到这里就结束了,我们下期见。。。。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。