首页 > 数据库 >flask之 sqlalchemy 原生操作

flask之 sqlalchemy 原生操作

时间:2024-11-15 17:56:36浏览次数:1  
标签:原生 sqlalchemy flask 数据库 数据类型 SQLAlchemy SQL 连接

一、sqlalchemy简介

SQLAlchemy 是一个强大的 Python 数据库工具集,它提供了一套完整的数据库访问方案。它通过多个层次来实现其功能,这些层次提供了灵活且强大的数据库操作能力。

1、SQLAlchemy的底层分层

Engine(引擎)

  • 角色:Engine 是 SQLAlchemy 的核心,通过它可以连接到数据库并执行 SQL 语句。
  • 功能:它是一个用于管理数据库连接的接口,并负责生成与数据库交互的Connection对象。
  • 创建:通常通过 create_engine() 函数来创建,使程序能够接入相应的数据库。

Connection Pooling(连接池)

  • 角色:连接池用于管理一组数据库连接以供重复使用。
  • 功能:通过复用已有的数据库连接,减少连接开销,提高应用的性能和效率。
  • 实现:SQLAlchemy 提供了一些连接池实现,如 QueuePool(默认)、SingletonThreadPool 等,用户可以通过配置参数进行定制。

Dialect(方言)

  • 角色:Dialect 用于处理不同数据库之间的特定差异。

  • 功能:它管理与特定数据库的通信,决定如何执行 SQL、翻译 SQL 为数据库特定的语言、处理特定的数据类型和连接设置。

  • 支持:SQLAlchemy 支持多种数据库方言,包括 SQLite、MySQL、PostgreSQL、Oracle、SQL Server 等。选择方言通过在连接字符串中指定合适的数据库驱动:

  • 如 "mysql+pymysql://user:password@host/db"

Schema/Types(架构和类型)

  • 角色:Schema/Types 层次定义数据库表的结构和列的数据类型。
  • 功能:它用于映射 Python 对象到数据库表,并支持定义和操作数据库的结构。
  • 组件:包括 TableColumn 等元素,以及丰富的内置数据类型如 IntegerStringDateTime,也允许自定义数据类型。

SQL Expression Language(SQL 表达式语言)

  • 角色:提供了一个灵活的 SQL 构建器,使得可以用 Python 对象来构建 SQL 语句。

  • 功能:它是一个抽象层,允许开发者通过 Python 的语法来构建复杂的 SQL 查询,而不需要手写 SQL。

  • 使用:用户可以通过表达式构建器来拼凑 SQL 语句,然后交给引擎执行。例如:

  • from sqlalchemy import select
  • stmt = select([users_table]).where(users_table.c.id == 42)
  • result = connection.execute(stmt)

SQLAlchemy 的分层结构通过 Engine 连接数据库、使用 Connection Pooling 管理连接、依赖 Dialect 处理数据库差异、通过 Schema/Types 进行数据库建模,并使用 SQL Expression Language 构建和执行表达式。这种设计使 SQLAlchemy 成为功能丰富且灵活的数据库访问工具,适用于广泛的开发需求。

2、

3、

二、

三、

标签:原生,sqlalchemy,flask,数据库,数据类型,SQLAlchemy,SQL,连接
From: https://www.cnblogs.com/dgp-zjz/p/18548418

相关文章

  • flask 之信号、信号量
    一、信号1、什么是信号(事件、绑定、触发)https://flask.palletsprojects.com/en/stable/api/#core-signals-list在Flask中,信号(Signals)是一种用于在应用程序的不同部分之间进行解耦和通信机制。信号允许不同的组件在不直接相互依赖的情况下进行交互和通知。这在处理某些事件......
  • 仓颉原生应用编程语言教程(第5期)
    泛型视频:KCKCJY在现代软件开发中,泛型编程已成为提高代码质量、复用性和灵活性的关键技术。泛型作为一种参数化多态技术,允许开发者在定义类型或函数时使用类型作为参数,从而创建可适用于多种数据类型的通用代码结构。泛型带来的好处包括:代码复用:能够定义可操作多种类型的通用算法......
  • flask毕设彩妆专卖分享平台的设计与实现(论文+程序)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着互联网的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。彩妆作为时尚与美容的重要领域,其市场规模日益扩大,消费者对于彩妆产......
  • flask毕设采购管理系统(论文+程序)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景在当今企业运营中,采购管理作为供应链管理的关键环节,对降低成本、提升效率及增强市场竞争力具有重要影响。关于采购管理系统的研究,现有文献......
  • Python-django-flask游戏虚拟物品道具商城管理系统
    文章目录项目介绍系统开发技术路线具体实现截图开发技术django项目代码结构参考解析论文大纲目录参考核心代码部分展示源码/演示视频获取方式项目介绍游戏虚拟物品管理系统的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、游戏虚拟物品......
  • python+vue基于django/flask新农村综合风貌展示平台java+nodejs+php-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • <Project-23 Navigator Portal> Python flask web 网站导航应用 可编辑界面:添加图片、UR
    目的:浏览器的地址簿太厚,如下图:开始,想给每个Web应用加icon来提高辨识度,发现很麻烦:createimage,resize,还要挑来挑去,重复性地添加代码。再看着这些密密麻麻的含有重复与有规则的字符,真刺眼!做这个PortalWeb应用来进行网站应用导航,docker部署后,占用端口:9999,可以在ap......
  • Flask新手教程之- 视图函数的装饰器
    除了@app.route,Flask还支持其他装饰器,用于实现更复杂的功能。 示例:@app.before_request:在每个请求处理之前运行的函数。@app.after_request:在每个请求处理之后运行的函数。@app.teardown_request:在请求结束后运行的函数,用于清理工作。  实例:@app.before_requestd......
  • 原生js预览ofd文件
    进入正文第一步-Clone打开GitHub或者Gitee,那个有账号用哪个,因为要下载包。ofd-githubofd-gitee然后,将项目clone下来。然后,然后就是常规操作了兄弟:编辑器打开项目,下载项目依赖npminstall看package.json,运行项目应该是npmrunserve,具体以实际的package.json中的script脚本为......
  • 【热门主题】000046 探索云原生后端:开启高效开发新时代
    前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......