SQLAlchemy 1.4.0 发布,Python ORM 框架

栏目: 软件资讯 · 发布时间: 3年前

内容简介:SQLAlchemy 是 Python SQL 工具箱和对象关系映射器,它为应用程序开发人员提供了 SQL 的全部功能和灵活性。它提供了一整套知名的企业级持久性模式,旨在高效、高性能地访问数据库,并被适配为一种简单的 Pythonic...

SQLAlchemy 是 Python SQL 工具箱和对象关系映射器,它为应用程序开发人员提供了 SQL 的全部功能和灵活性。它提供了一整套知名的企业级持久性模式,旨在高效、高性能地访问数据库,并被适配为一种简单的 Pythonic 域语言。

在经历了 1.4 系列的三个测试版之后,1.4.0 版本终于正式发布了。它对核心和 ORM 中最突出的 API 进行了重大的重新思考,对内部结构进行了大量的修改,并提供了大量重要的新特性和功能。

SQLAlchemy 1.4 确立了自己作为 SQLAlchemy 2.0 项目的起点,该项目将完全转移到 Python 3 上,并最终确定 1.4.0 版本中引入的新 API。

SQLAlchemy 1.4.0 最主要的亮点包括:

  • 用于为 Core 和 ORM 生成 SELECT 和其他 SQL 语句的方法现在统一在一个经过修改且功能更强大的 select() 构造上。因此,针对 Core 或 ORM 上下文的 SQL 查询现在可以使用相同的 API 和模式来组成。Session.execute() 和 Connection.execute() 方法已被调整,因此 Core 和 ORM 查询和结果集之间的转换是无缝的,两个系统的行为与彼此的实际情况相似。新的强调明确性和不含糊的一致性,目的是让学习和使用 SQLAlchemy 更加直接,同时也支持新的 Python 范式,如 asyncio 和 PEP-484 类型;
  • 修订后的声明式映射系统为许多新的映射范式提供了支持,包括使用装饰器而不是基类的映射类,对 Python 数据类的明确支持,以及"命令式映射",它是与声明式类注册表集成的经典映射器 mapper() 操作的改进版本;
  • 对 Core 和 ORM 的 SQL 编译进行通用和完全透明的缓存。这取代了之前版本的 "baked 查询缓存"系统,该系统为 ORM 提供了一个可选的 SQL 缓存系统,新的方法是完全透明的,并为 Core 和 ORM 中的绝大多数 DML 和 DQL 语句启用。该系统不仅可以缓存语句的即时 SQL 字符串,还可以缓存其相关的结果处理基础架构,该基础架构用于为每个查询生成新的行和 ORM 对象实例;
  • 为 Core 以及 ORM 新修订的模型,它更易于使用,消除了已经变得混乱的传统 API,并以比以前更一致的方式运行。新的模型将是 SQLAlchemy 2.0 中唯一的模型,目前通过将 future=True 标志传递给 create_engine() 函数以及 Session() 构造函数,可以在 1.4 下完全启用;
  • 完全支持 Python asyncio 的 Core 和 ORM。这个新系统利用 greenlet 上下文切换库来调整 SQLAlchemy 的全部内容,使其可以在一个 asyncio 前端使用,同时在 asyncio 事件循环中直接对 asyncio 数据库驱动进行操作,而不需要线程执行器。目前已经包含了对 asyncpg 和 aiomysql 的支持,更多的驱动正在开发中;
  • 大幅提高了 ORM 查询的可扩展性,使用了新的钩子和选项,包括 SessionEvents.do_orm_execute() 钩子和 with_loader_criteria() 函数,可以可靠地、可预测地拦截和修改所有带有附加条件的 ORM 查询;
  • 对 PEP-484 和 Mypy 的原生支持现在正在开发中,其中包括一个全新的 Mypy 插件的 alpha 版本,它与新发布的 stubs 库 sqlalchemy2-stubs 一起运行。

1.4.0 版本的完整变更日志可查看:https://www.sqlalchemy.org/changelog/CHANGES_1_4_0


以上所述就是小编给大家介绍的《SQLAlchemy 1.4.0 发布,Python ORM 框架》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

六度分隔

六度分隔

邓肯·J·瓦茨 / 陈禹 / 中国人民大学出版社 / 2011-3 / 46.00元

正如副标题所表明的,《六度分隔:一个相互连接的时代的科学》的基本内容是介绍一门正在形成中的新科学——关于网络的一般规律的科学。有这样一门科学吗?它的内容和方法是什么?近年来,这门学科有什么实质性的进展吗?在《六度分隔:一个相互连接的时代的科学》中,作者根据自己的亲身经历娓娓道来,用讲故事的方式,对于这些问题给出了令人信服的回答 除了简要的背景和总结以外,《六度分隔:一个相互连接的时代的科学》......一起来看看 《六度分隔》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具