DB-API简化了
dbkit的Python项目详细描述
dbkit是一个库,它至少抽象了部分痛苦 参与处理与DB-API 2兼容的数据库驱动程序。
下面是一个示例:
from dbkit import connect, query from contextlib import closing import sqlite3 with connect(sqlite3, 'counters.db') as ctx, closing(ctx): for counter, value in query('SELECT counter, value FROM counters'): print "%s: %d" % (counter, value)
概述
dbkit用于不实际的情况 或者过度使用orm,比如SQLObject或SQLAlchemy,但是 至少有助于消除 处理数据库。
功能:
- 语句不是传递数据库连接,而是执行 在数据库context中,因此有助于分离 从数据库本身及其连接与数据库的接口 细节。
- 数据库上下文包含对 数据库驱动程序,从而将异常处理与数据库分离 司机。
- 更易于使用事务处理。
- 比结果集更容易迭代。
- 连接池。此外,任何使用池连接的代码都有 无需知道连接池已就位。
- 查询日志记录。
非目标:
- SQL语句的抽象。我们的想法是把更多的 处理过程中涉及的烦人但必要的样板代码 DB-API 2驱动程序,而不是完全抽象掉sql本身。
开发
回购协议可以在Github上找到,而 文档可以在Read the Docs上找到。
更改历史
0.2.4(2015-11-30)
- 支持Python3。
0.2.3(2015-11-26)
- context.cursor()现在总是创建一个事务。缺少这种外表 事务意味着postgresql将导致大量空闲 未提交或回滚的事务。
0.2.2(2013-04-04)
- 废弃unindent_statement()。
- 从exception派生所有dbkit异常。
- 清除连接ping代码。
- 添加make_placeholders()以安全生成语句占位符。
- 将添加到dict()以将结果集转换为 特定领域。
0.2.0(2012-10-16)
- 添加最后一行id()。
- 池现在可以有自定义中介。
- 光标现在被跟踪。
- 池连接不再过早关闭。
- 行工厂现在可以在上下文之外安全地使用。
0.1.4(2012-10-11)
- execute*()现在返回受影响的行数。
- 将最后一行计数和最后一行id添加到上下文。
- 删除dummypool和threadaffinepool,尽管后者可能是 返回。
- 稳定处理过期连接时池的行为。
- 文档版本现在直接与库挂钩。
0.1.2(2012-09-02)
- 带有变更日志的初始修订。