future=True 在 sqlalchemy 的 create_engine() 函数中到底做了什么?

Ben*_*Ben 6 python sqlalchemy

我正在阅读SQLAlchemy 1.4 / 2.0 教程。在其中,他们建议通过创建一个引擎

from sqlalchemy import create_engine
engine = create_engine("sqlite+pysqlite:///:memory:", echo=True, future=True)
Run Code Online (Sandbox Code Playgroud)

深入研究create_engine()它的文档说,

:param future: 使用 2.0 风格 :class:_future.Engine
:class: _future.ConnectionAPI。

这到底是什么意思?如果我排除哪些函数或类将不起作用future=True?(请注意,我使用的是 SQLAlchemy 1.4.26)

小智 3

“未来”标志是一种允许从早期版本的 SQLAlchemy 无缝切换到新的 v2.0 的机制。临时版本 (v1.4) 的过渡两侧各有一只脚。这是 1.4 教程的注释:

\n
\n

关于未来的注释

\n

本教程介绍了在 SQLAlchemy 1.4 中发布的\xe2\x80\x99s 称为 2.0 风格的新 API。2.0 样式 API 的目的是提供与 SQLAlchemy 2.0 的向前兼容性,SQLAlchemy 2.0 计划作为下一代 SQLAlchemy。

\n

为了提供完整的 2.0 API,将使用一个名为 future 的新标志,在教程描述 Engine 和 Session 对象时将看到该标志。这些标志完全启用 2.0 兼容模式并\n允许教程中的代码完全执行。当将 future 标志与 create_engine() 函数一起使用时,返回的对象是 sqlalchemy.engine.Engine 的子类,描述为 sqlalchemy.future.Engine。本教程将参考\nsqlalchemy.future.Engine。

\n
\n

有关更多信息,请参阅站点:SQLAlchemy 1.4 教程

\n