前言
本节内容我们使用sqlalchemy框架完成Sqlite3数据库表的增删查改等常规操作,相较于原生Sqlite的数据库操作,sqlalchemy通过ORM映射完成实体对象的映射,通过映射关系完成对象和数据的转换,完成数据的操作。
正文
①在项目中使用pip命令安装sqlalchemy框架
命令: pip install sqlalchemy
②创建实体映射对象User数据库表
# 引入sqlalchemy依赖 from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.orm import declarative_base, 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)
③创建sqlite3的session数据库连接
# 引入sqlalchemy依赖 from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.orm import declarative_base, sessionmaker# 申明基类对象 Base = declarative_base()# sqlite连接初始化 class SqliteSqlalchemy(object):def __init__(self):# 创建sqlite连接引擎engine = create_engine('sqlite:///./sqlalchemy.db', echo=True)# 创建表Base.metadata.create_all(engine, checkfirst=True)# 创建sqlite的session连接对象self.session = sessionmaker(bind=engine)()
④新增一条用户信息数据
- 代码实现
# 引入sqlalchemy依赖 from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.orm import declarative_base, 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)class SqliteSqlalchemy(object):def __init__(self):# 创建Sqlite连接引擎engine = create_engine('sqlite:///./sqlalchemy.db', echo=True)# 创建表Base.metadata.create_all(engine, checkfirst=True)# 创建Sqlite的session连接对象self.session = sessionmaker(bind=engine)()if __name__ == '__main__':# 初始化Sqlite数据库连接,获取数据库session连接session = SqliteSqlalchemy().session# 新增一条用户信息数据user = User(name='xiaoming', age=23)session.add(user)session.commit()# 关闭数据库session连接session.close()
- 执行结果
⑤新增多条用户信息数据
- 代码实现
if __name__ == '__main__':# 初始化Sqlite数据库连接,获取数据库session连接session = SqliteSqlalchemy().session# 新增多条用户信息数据datas = [User(name='张三', age=20),User(name='李四', age=21),User(name='王五', age=22),]session.add_all(datas)session.commit()# 关闭数据库session连接session.close()
- 执行结果
⑥查询表中全部用户数据
- 代码实现
if __name__ == '__main__':# 初始化Sqlite数据库连接,获取数据库session连接session = SqliteSqlalchemy().session# 查询user用户表中的全部数据result = session.query(User.id, User.name, User.age).all()print(result)# 关闭数据库session连接session.close()
- 执行结果
⑦根据用户ID更新用户数据
- 代码实现
if __name__ == '__main__':# 初始化Sqlite数据库连接,获取数据库session连接session = SqliteSqlalchemy().session# 根据ID更新用户数据user_id = 1session.query(User).filter(User.id == user_id).update({User.name: "王五", User.age: 18})session.commit()# 关闭数据库session连接session.close()
- 执行结果
⑧ 根据用户ID删除用户数据
- 代码实现
if __name__ == '__main__':# 初始化Sqlite数据库连接,获取数据库session连接session = SqliteSqlalchemy().session# 根据id删除数据user_id = 1del_count = session.query(User).filter(User.id == user_id).delete()print('删除数目:', del_count)session.commit()# 关闭数据库session连接session.close()
- 执行结果
结语
六月份最后一篇,关于使用sqlalchemy完成Sqlite3数据库表的增、删、查、改操作案例到这里就结束了,下期见。。。。。。