Python通过Sqlalchemy框架实现增删改查

server/2024/9/30 4:21:06/

目录

简介

什么是SQLAlchemy?

SQLAlchemy可以分为两个部分:Core和ORM。

一、首先安装sqlalchemy

二、在配置文件中添加数据库连接信息,我这里是Mysql

三、 创建数据库连接类,我这里是动态读取数据库的表字段,自动生成实体model

四、验证


简介


什么是SQLAlchemy?


SQLAlchemy是一个Python的SQL工具和ORM框架,可以通过Python代码直接操作关系型数据库,也可以使用ORM模型进行对象关系映射。它支持多种数据库,并提供了强大的SQL表达式和查询API。

SQLAlchemy可以分为两个部分:CoreORM

Core:提供了底层的SQL表达式和查询API,支持多种数据库的可移植操作,例如连接管理、事务管理、对象关系映射、元数据管理等。
ORM:提供了基于Core的高级API,使得开发者可以使用Python的面向对象语法方式来进行数据库操作,把数据库表中的记录映射到Python中的对象实例上。ORM部分可以通过继承和关联来轻松进行数据关系的管理和维护,大大简化了数据库操作的难度。
以下是SQLAlchemy的一些优点:

可移植性:支持多种数据库,并提供了统一的API,使得应用程序对于不同数据库的切换和迁移更加容易。
易用性:提供了易用的API和强大的对象关系映射功能,开发者可以使用面向对象的方式来操作数据库,并且可以把数据库表中的记录映射到Python中的对象实例上。
易扩展性: SQLAchemy由活跃的开源社区维护,提供了完整的文档、教程和资料支持,可以方便地扩展和定制。
性能表现良好:SQLAlchemy在实现中采用了连接池管理连接,缓存查询结果等技术,以确保较高的性能和可伸缩性。
总之,SQLAlchemy是Python操作数据库的一个非常强大和优美的工具和框架,无论是从开发者的角度还是从性能方面考虑,都是一个非常不错的选择。

一、首先安装sqlalchemy

pip install sqlalchemy

二、在配置文件中添加数据库连接信息,我这里是Mysql

三、 创建数据库连接类,我这里是动态读取数据库的表字段,自动生成实体model

python">from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from config.config import USERNAME,PASSWORD,HOSTNAME,DATABASE
from urllib import parse
# 创建基类
Base = automap_base()
# 替换以下 URL 为你的数据库连接字符串
PWD = parse.quote_plus(PASSWORD)
engine = create_engine('mysql+pymysql://{}:{}@{}/{}'.format(USERNAME,PWD,HOSTNAME,DATABASE))
# 映射已存在的表
Base.prepare(engine, reflect=True)# 创建会话
Session = sessionmaker(bind=engine)
session = Session()"""
这下面就可以根据表明直接生成实体Model了
"""
#字典表
DictionaryDO = Base.classes.mp_tb_z_dictionary
#秘钥表
keyDO = Base.classes.mp_tb_z_key

四、在主类引用可直接实现增删改查的操作

python">from model.mysql_db_model import DictionaryDO ,keyDO,session"""
测试专用
"""
@bi.route('/ssss', methods=['GET'])
def get_test():#查询DictionaryDOList = session.query(DictionaryDO).all()data = [{'id': dictionaryDO.id, 'type': dictionaryDO.type}  # 根据您的需求添加更多字段for dictionaryDO in DictionaryDOList]#增删改查 。。。。。。等等操作return jsonify({"code": 0,"msg": "success","data": data})

四、验证

postman访问结果:


http://www.ppmy.cn/server/124799.html

相关文章

flutter 文件操作与网络请求

flutter 文件操作与网络请求 文件操作 APP 目录 临时目录 getTemporaryDirectory()获取;系统可随时清除临时目录的文件;文档目录 getApplicationDocumentsDirectory()获取;只有当应用程序被卸载时,系统才会清除该目录外部存储目录 getExternalStorageDirectory()获取;第三…

使用xml编写查询前提下MyBatisPlus分页IPage用法

在pom文件里增加MyBatisPlus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.1</version> </dependency> 在config层定义拦截器 Configuration public …

《大型 C++项目的代码组织与架构设计秘籍》

在当今的软件开发领域&#xff0c;C仍然是一种强大且广泛应用的编程语言&#xff0c;尤其在大型项目中&#xff0c;其性能和灵活性优势更为突出。然而&#xff0c;大型 C项目的复杂性也给开发者带来了巨大的挑战&#xff0c;如何进行有效的代码组织和架构设计成为了关键问题。一…

银河麒麟V10下如何将TXT文件转为PDF?

银河麒麟V10下如何将TXT文件转为PDF&#xff1f; 1. 安装软件2. TXT转PS3. PS转PDF &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在银河麒麟高级服务器操作系统V10中&#xff0c;将TXT文件转换为PDF文件可以通过简单的几步完成。 1. 安装…

IT行业的现状与发展趋势

IT行业的现状与发展趋势 随着信息技术的迅速发展&#xff0c;IT行业已成为全球经济的重要支柱之一。无论是传统行业的数字化转型&#xff0c;还是新兴技术的快速崛起&#xff0c;IT行业都在不断推动社会的进步和发展。本文将探讨IT行业的现状及未来发展趋势。 IT行业的现状 …

MySQL的基础用法一

数据库的操作 对库的操作 SQL通用语法规则介绍 创建数据库 使用数据库 查询所有数据库 查询当前数据库 删除数据库 对库中表的操作 创建一个表 查询当前数据库所有表 查询表结构 查询指定表的建表语句 &#x1f698;&#x1f698;&#x1f698;正片开始 SQL通用语…

第三十八条:使用接口模拟可扩展的枚举

在大多数情况下&#xff0c;事实证明扩展枚举枚举并不是好注意。如果一个扩展类型的元素是基本类型的实例&#xff0c;但反过来不成立&#xff0c;这会令人困惑。要枚举基类型以及其扩展类型的所有元素&#xff0c;也没有很好的办法。最后&#xff0c;可扩展性会让设计和实现的…

四款视频剪辑工具使用感受与推荐:

大家好&#xff01;今天咱们来聊聊视频剪辑工具。随着短视频的火热&#xff0c;越来越多的小伙伴开始涉足视频剪辑领域&#xff0c;那到底哪款工具更适合你呢&#xff1f;接下来&#xff0c;就让我为大家分享一下我使用过的几款视频剪辑工具的体验和感受吧&#xff01; 一、福昕…