Python - 数据库访问

2025年1月5日 | 阅读 4 分钟

访问数据库是许多 Python 开发者的关键技能,因为它允许应用程序与持久数据存储系统进行交互。Python 提供了多个库来与众多类型的数据库进行接口,包括关系型数据库,如 MySQL 和 PostgreSQL,以及 NoSQL 数据库,如 MongoDB。本文将介绍 Python 中数据库访问的基础知识,并重点介绍 SQLite、SQLAlchemy 和 PyMongo 等库。

数据库简介

在深入研究 Python 特定的库之前,让我们简要回顾一下数据库是什么以及为什么使用它们。数据库是数据的结构化集合,可以轻松访问、管理和更新。它们对于高效地存储和检索大量信息至关重要。

数据库可大致分为

  • 关系型数据库:这些数据库使用结构化查询语言 (SQL),并具有预定义的模式。例如,MySQL、PostgreSQL 和 SQLite。
  • NoSQL 数据库:这些数据库更灵活,是无模式数据库。例如,MongoDB、Cassandra 和 Redis。

SQLite

SQLite 是一种独立的、无服务器的、轻量级的数据库引擎。它是小型到中型应用程序、开发和测试的绝佳选择。Python 在其标准库中包含 sqlite3 模块,因此非常容易上手和使用 SQLite。

连接到 SQLite 数据库

创建表

插入数据

查询数据

输出

(1, 'Alice', 30)
(2, 'Bob', 25)

关闭连接

SQLAlchemy

SQLAlchemy 是 Python 的强大 SQL 工具包和对象关系映射 (ORM) 库。它提供了高级 ORM 和低级 SQL 表达式语言。SQLAlchemy 支持各种数据库引擎,包括 SQLite、MySQL、PostgreSQL 和 Oracle。

安装 SQLAlchemy

您可以使用 pip 安装 SQLAlchemy

设置 SQLAlchemy

插入数据

查询数据

输出

Alice 30
Bob 25

PyMongo

PyMongo 是 MongoDB 的官方 Python 驱动程序。MongoDB 是一种流行的 NoSQL 数据库,以灵活的、类似 JSON 的文档形式存储数据。PyMongo 主要允许 Python 应用程序与 MongoDB 进行交互。

安装 PyMongo

您可以使用 pip 安装 PyMongo

连接到 MongoDB

插入数据

查询数据

输出

Alice 30
Bob 25

最佳实践

  • 使用参数化查询:始终使用参数化查询来避免 SQL 注入攻击。这适用于原始 SQL 查询和基于 ORM 的查询。
  • 妥善处理连接:确保数据库连接已正确打开和关闭。在可能的情况下,使用上下文管理器(with 语句)。
  • 优化查询:优化数据库查询以提高性能。使用索引、适当的模式设计和高效的查询技术。
  • 错误处理:实现健壮的错误处理机制,以优雅地处理数据库错误。使用 try-except 块来捕获和处理异常。
  • 为复杂应用程序使用 ORM:对于复杂的应用程序,请考虑使用 SQLAlchemy 等 ORM 来更有效地管理数据库交互。

结论

在 Python 中访问数据库是一项基本技能,它使开发人员能够构建数据驱动的应用程序。本文介绍了使用 sqlite3 模块的 SQLite 的基本知识,利用 SQLAlchemy 进行更复杂的交互,以及使用 PyMongo 连接到 MongoDB。通过遵循最佳实践并为您的应用程序选择正确的工具,您可以有效地管理和操作存储在各种类型数据库中的数据。


下一个主题Python 语法