也许是最后一个python的分享,最近C++分布式群组聊天项目比较折腾。个人觉得这个库是比较通用的,那些在自己写数据库封装或者使用tornado db, dbutil这样的简单的db访问封装可以试试。
戳 https://github.com/thomashuang/dbpy
功能:
- 灵活简单
- 天马行空的SQL构建语法糖
- 线程安全的连接池
- 好使的读写分离
- 支持简单事务
设计主要借鉴的php的drupal database的设计。设计模式和以前写的项目差不多更像c/c++系项目风格,主要使用单例,工厂和适配设计模式,不过稍稍的pythonic了下。
贴一段代码:
or_cond = db.or_().condition('field1', 1).condition('field2', 'blabla')
and_cond = (db.and_().condition('field3', 'what')
.condition('field4', 'then?'))
print (db.select('table_name').condition(or_cond)
.condition(and_cond))
# > SELECT * FROM `table_name`
# > WHERE ( `field1` = %s OR `field2` = %s ) AND ( `field3` = %s AND `field4` = %s )
q = (db.insert('users').fields('name').values({'name': 'insert_1'})
.values(('insert_2',)))
# > INSERT INTO `users` (`name`) VALUES(%s)
print q._values
# > [('insert_1',) ('insert_2',)]