练习 44:使用 Python 的数据库 API

原文:Exercise 44: Using Python's Database APIarrow-up-right

译者:飞龙arrow-up-right

协议:CC BY-NC-SA 4.0arrow-up-right

自豪地采用谷歌翻译arrow-up-right

Python 具有标准化的数据库 API,可以使用相同的代码访问多个数据库。你要连接的每个数据库都有一个不同的模块,它们知道如何与该数据库通信,并遵循 https://www.python.org/dev/peps/pep-0249/PEParrow-up-right 中的标准。这使得我们更容易使用所有数据库来访问它们,它们具有不同 API。对于本练习,你将使用 https://docs.python.org/2/library/sqlite3.htmlarrow-up-right 上的sqlite3模块来处理 SQL。

学习 API

作为程序员,你必须不断做到的一件事是,学习其他人写的 API。我没有具体涵盖最有效的方式来做到它,因为大多数程序员得心应手,就像学习语言那样。Python 语言及其模块密切相关,当你学习 Python 时,你不得不学习这些模块中的 API。然而,有一种有效的方式来学习我使用的 API,在这个练习中你将要学习它。

为了学习像sqlite3模块的API,我会这样做:

  • 查找 API 的所有文档,如果没有文档,请查找代码。

  • 检查样例或测试代码,并将其复制到我自己的文件中。通常阅读是不够的。我实际上会使其工作,猜猜为什么,因为很多时候文档不匹配当前版本的 API。制作文档中的所有东西,可以帮助我找到所有忘记提到的内容。

  • 当你获取样例代码,来工作于我的机器时,记录下任何对我有用(WFM)的情况。WFM 是,编写文档的人留下了重要的配置步骤,因为他们的计算机已经配置好了。大多数编写文档的程序员并不是从一台新机器开始,所以他们遗漏了一些库和软件,它们安装了但是别人没有。当你尝试在生产环境中配置 API 时,这些 WFM 的差异之后会阻碍你,所以我会记下来便于以后使用。

  • 为所有主要 API 入口点,以及它们所做的东西制作闪存卡或笔记。

  • 尝试写一个小型的峰值测试,使用 API​​ 但只使用你的笔记。如果你点击了你不记得的 API 的一部分,请返回到文档并更新你的笔记。

  • 最后,如果 API 很难使用,我会考虑使用一个简单的 API 来“包装”它,它只做我需要的东西,所以我可以忘记它。

如果这样不能学到 API,那么你应该考虑找一个不同的 API 来使用。如果 API 的作者告诉你“阅读代码”,则可能有另一个具有文档的项目。去使用该项目吧。如果你必须使用这个 API,那么考虑根据自己的代码来记录你的笔记,然后写一本书来卖,从作者的懒惰中赚钱。

挑战练习

你将以这种方式学习sqlite3 API,然后尝试编写自己的数据库简化 API。请记住,DB API 2.0arrow-up-right 已经是一个不错简单的 AP,用于访问数据库I,所以你只需练习包装一个糟糕的 API。你的目标应该是充分学习sqlite3 API,然后设计一种更简单的方法来访问它。

有时“简单”纯粹是主观的,或是根据当前的需要。你可以决定,你需要简化的东西,不是与 SQL 数据库通信的方式,而是你与 SQL 数据库通信的方式。如果你的应用程序只需要处理人员和宠物,那么你的简化可以仅仅是,制作一个仅适用于你的 API。

深入学习

阅读 Python 中其它数据库的 API。你可以阅读 Pyscopg PostgreSQL APIarrow-up-right,以及 MySQL Python 驱动arrow-up-right

Last updated