python - 在python中建立数据库连接的正确方法

标签 python database coding-style mysql-python

我有一个包含多个函数的脚本,这些函数都需要进行数据库调用。我正在尝试更好地编写干净的代码,而不是仅仅将风格糟糕的脚本拼凑在一起。通常被认为是建立全局数据库连接的最佳方法,该连接可以在脚本中的任何位置访问,但不容易出现错误,例如意外重新定义保持连接的变量。我想我应该把所有东西都放在一个模块中?任何指向实际代码的链接也将非常有用。谢谢。

最佳答案

如果你正在使用 Python 和数据库,你不能不看 SQLAlchemy :

SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.

It provides a full suite of well known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.

我用极少的代码(几百行)构建了非常复杂的数据库。模式定义几乎是 self 记录的,用于对象关系映射器的对象是普通的旧 Python 对象(即,您已经拥有的对象),查询 API 几乎是显而易见的。此外,文档非常出色:许多在线示例、完整记录的 API 和一本 O'Reilly 的书,虽然远非完美,但确实可以让您在几个晚上从零变成危险。

如果您不想使用对象关系映射器,您总是可以回退到普通连接和文字 SQL。此外,该代码是可移植的并且独立于数据库(相同的代码将适用于 MySQL、Oracle、SQLite 和其他数据库管理器)。

Session 对象将自动处理池化(您提到的问题)。

了解其强大功能的最佳方法可能是遵循 Google 查询 sqlalchemy 教程 的第一个结果页面中获得的教程。

关于python - 在python中建立数据库连接的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6281732/

相关文章:

coding-style - Kotlin:顶级函数应该去哪里?

Python:有没有办法安排 Celery 任务只在特定时间范围内运行?

python - 从列表中的第一项创建所有序列

python - 查看调用端点?

python - 比较python中的两个列表并返回匹配值的索引

sql - 让一个SQL请求更高效更整洁?

Silverlight ~ MVVM ~ 根据模型值动态设置 Style 属性

mysql - 如何优化 MySQL 的变更历史数据

python - 仅命名 pandas.read_csv 读取的数据集的最后一列

c++ - 您会推荐 Todd Hoff 的《C++ 编码标准》吗?