揭秘 DB-API
DB-API 是DataBase Application Programming Interface 的首字母缩写,是一个让python 连接到数据库服务器的库。根据您使用的关系数据库库,它们有自己的 DB-API 模块。
与我们作为开发人员主要处理的 Web API 类似,它是专门用于服务器端和数据库之间的数据库的计算接口,它使我们能够使用某些协议(例如 TCP/IP)与数据库进行通信。
当我们在客户端 Web 应用程序上工作时,我们经常从 Web API 中提取数据以将它们显示给最终用户,如果最终用户修改/上传现有/新数据,我们需要确保相应地调用 CRUD 操作.这种客户端-服务器模型应用于许多现代系统以与服务器交互。简而言之,数据库是相同的,通过网络使用客户端-服务器交互进行交互。当最终用户发出请求时,浏览器将对 Web 服务器执行相同的操作,此时,Web 服务器成为客户端,向数据库发出请求,数据库充当服务器来满足请求。
当我们谈论数据和通过网络传输数据时,涉及到 TCP 和 IP 两个主要协议。他们使用 IP 地址和端口号。由于它们是基于连接的协议,我们总是必须通过 TCP/IP 建立从 DB-API 到数据库服务器的连接。换句话说,我们需要显式地为连接启动一个会话,并为一个会话结束连接。
# DB-API for PostgreSQL
import psycopg2
connection = psycopg2.connect('dbname=test')
......
connection.close()
进入全屏模式 退出全屏模式
在每个数据库会话中,都会发生许多事务。会话使我们能够像 git 一样控制每个事务。想象一下,您在一个新分支上为您的任务更改了代码,并在提交并将其推送到阶段之前添加了该分支。但是,如果高级开发人员发现了一个错误,那么您最终可能会恢复它。
transaction.add('CREATE TABLE coffee (
id INTEGER PRIMARY KEY,
item STRING NOT NULL') ;
)
transaction.add('''
INSERT INTO coffee (id, item) VALUES (%(id)s, %(item)s);',
{ 'id': 1, 'item': 'Cafe Latte' }
''')
transaction.commit()
transaction.rollback()
进入全屏模式 退出全屏模式
如果您熟悉 git 命令行,正如我上面解释的,这可能会帮助您对数据库事务有所启发。这很直观,并且由于数据库有时会失败,我们可以回滚到更改之前的前一点。
每个事务都是访问数据库的原子工作单元,它允许我们读取和写入数据。有 4 个特性可以使数据库更易于维护和可靠:原子性、一致性、隔离性和持久性。就像 git 一样,数据库操作的每个事务都应该满足这些属性,以防止并发执行、掉电等任何错误。
我希望我对 DB-API 的解释不仅可以帮助您理解 DB-API,还可以帮助您理解数据库和 API 的一般概念。感谢您的阅读,希望您喜欢学习 Web 开发!
照片会Markus ListHeUnsplash
更多推荐
所有评论(0)