当前位置: 首页 > article >正文

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

目录

简介

什么是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

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

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

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.kler.cn/news/325224.html

相关文章:

  • Qt网络编程——QTcpServer和QTcpSocket
  • centos7 semanage 离线安装 SELinux
  • Vue3 + TS 实现同一项目同一链接,pc端打开是web应用,手机打开是H5应用
  • Solidity语言:重点学习Solidity编程语言,这是EVM上最常用的智能合约语言。
  • 关于大模型的10个思考
  • 828华为云征文 | 云服务器Flexus X实例:向量数据库 pgvector 部署,实现向量检索
  • Stable Diffusion零基础学习
  • 基于SpringBoot+Vue+MySQL的体育商城系统
  • Linux,C高级——day4
  • 【AI写作】解释 RESTful API,以及如何使用它构建 web 应用程序。
  • 基于nodejs+vue的水产品销售管理系统
  • 大厂面试真题:G1比CMS好在哪?一定好吗
  • CSR、SSR、SSG
  • 【STM32开发环境搭建】-3-STM32CubeMX Project Manager配置-自动生成一个Keil(MDK-ARM) 5的工程
  • 6.数据结构与算法-线性表的链式表示和实现-单链表
  • wireshark使用要点
  • 【STM32】江科大STM32笔记汇总(已完结)
  • Google BigTable架构详解
  • 无人驾驶车联网5G车载路由器应用
  • C++ 创建型设计模式
  • 怎么获取一个文件夹下的所有文件名?
  • MATLAB读取TIF文件,并可视化
  • 基于SpringBoot+Vue+MySQL的美食点餐管理系统
  • 项目集成SpringSecurity框架
  • Python项目Flask框架整合Redis
  • 揭秘移动硬盘RAW:原因、恢复策略与预防措施
  • 【TS】TypeScript内置条件类型-ReturnType
  • Java五子棋
  • 召回11 地理位置召回、作者召回、缓存召回
  • Oracle 表空间时间点恢复