使用 SQLAlchemy 连接 Python 中的 PostgreSQL


Python 提供了各种库,其中之一是 SQLAlchemy,它为数据库操作提供了一个对象关系映射 (ORM) 系统,包括 PostgreSQL。开发人员使用它来存储和管理海量结构化数据。通过连接这两个,我们可以创建更高效、更强大的数据库。在本文中,我们将学习如何在 Python 中使用 SQLAlchemy 连接 PostgreSQL。

什么是 SQLAlchemy?

它是一个强大的库,有助于简化数据库操作流程,广泛应用于 Web 开发和数据分析。它提供诸如连接池、语句缓存和负载平衡等高级功能。这些高级功能有助于提高数据库应用程序的性能。

什么是 PostgreSQL?

它是一个先进的开源关系数据库管理系统,以其性能、可扩展性和健壮性而闻名。它被用作 Web 应用程序的后端数据库,并支持多种编程语言。

将 PostgreSQL 连接到 SQLAlchemy 的优势

以下是将 PostgreSQL 连接到 SQLAlchemy 的优势:

  • SQLAlchemy 库的多功能性和灵活性使开发人员能够轻松地与各种数据库管理系统进行交互。

    因此,开发人员可以在使用不同数据库时使用相同的接口和代码结构。这有助于节省时间和精力。

  • SQLAlchemy 提供了一个对象关系映射 (ORM) 框架,使开发人员能够使用 Python 类和对象与 PostgreSQL 进行交互。

    这层抽象简化了与数据库交互的过程,并有助于开发人员专注于应用程序逻辑而不是数据库细节。

  • Psycopg2 是一个 Python 库,它提供了一套工具,可用于使用 Python 与 PostgreSQL 数据库进行交互。它支持高级 PostgreSQL 功能,例如服务器端游标、事务管理和异步连接。它广泛应用于 Web 开发、数据分析等需要数据持久化的领域。

先决条件

在继续操作之前,请确保您的系统中已安装并运行以下内容。

  • Python 3

  • PostgreSQL 数据库

  • Psycopg2 和 SQLAlchemy 包

如何安装所需的 Python 包?

可以使用 pip(Python 的包安装程序)来安装 psycopg2 和 SQLAlchemy。在您的系统中打开命令提示符并运行以下命令。

pip install psycopg2
pip install sqlalchemy
  • 安装所需的包是第一步。下一步是使用 SQLAlchemy 连接 PostgreSQL。您可以使用 SQLAlchemy 的 create_engine() 函数来创建到 PostgreSQL 数据库的连接。

  • 将数据库 URL 传递给此函数;它应包含数据库名称、用户名、密码、主机和端口号。

示例

让我们准备一段代码来说明如何使用 create_engine() 连接到 PostgreSQL 数据库。

from sqlalchemy import create_engine
# for postgreSQL database credentials can be written as 
user = 'username'
password = 'your_password'
host = 'localhost'
port = '5432'
database = 'mydb'
# for creating connection string
connection_str = f’postgresql:// {user}:{password}@{host}:{port}/{database}’
# SQLAlchemy engine
engine = create_engine(connection_str)
# you can test if the connection is made or not
try:
    with engine.connect() as connection_str:
        print('Successfully connected to the PostgreSQL database')
except Exception as ex:
    print(f'Sorry failed to connect: {ex}')

我们首先从 SQLAlchemy 库导入函数。然后我们定义了 PostgreSQL 数据库的凭据。下一步是使用这些凭据创建连接字符串。您可以将凭据信息更改为您数据库的凭据。

接下来,我们使用 create_engine() 函数创建了一个 SQLAlchemy 引擎对象。因此,此对象表示数据库连接,并且也可以用于在数据库上执行 SQL 命令。

使用 SQLAlchemy 连接到 PostgreSQL 后,您可以使用引擎对象的 execute() 方法在数据库上执行 SQL 命令。

错误

在编写代码并执行时,可能会遇到一些错误。让我们了解一些常见的错误及其解决方案。

  • 其中一个基本的错误是导入错误,您可以通过在命令提示符中使用 pip 安装模块来解决此错误。

  • 在执行 SQL 命令时,您可能会遇到错误“sqlalchemy.exc.OperationalError: (psycopg2.OperationalError)FATAL:role “username” does not exist”。如果连接字符串中的用户名在 PostgreSQL 中不存在,则可能会发生此错误。

  • 您可能会遇到模块无法连接到服务器的操作错误。您可以通过检查网络配置或启动 PostgreSQL 服务器来解决此错误。

结论

我们可以从本文中得出结论,SQLAlchemy 是一个功能强大的 Python 库,用于数据库操作,因为它提供了基于数据操作和数据连接的灵活性。使用 SQL 的 ORM 功能,您可以用 Python 编写代码,以更具表达力的方式与 PostgreSQL 数据库进行交互。因此,如果您是 Python 开发人员并且正在寻找与应用程序中的数据库交互的方式,那么 SQLAlchemy 是一个不错的选择。

更新于: 2023年9月13日

5K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告