扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
但连mysql没问题,代码很简单,
from DBUtils.PooledDB import PooledDB
import MySQLdb
pool = PooledDB(MySQLdb, 5,host = "ipip", user = "root", passwd = "....", db = "dbTest")
"""
PooledDB的第一个参数是creator: either an arbitrary function returning new DB-API 2
connection objects or a DB-API 2 compliant database module
也就是说,我们传入一个数据库实现类的module名字即可,它自己会去判断如何建立数据库连接。
"""
db_conn = pool.connection() # 这就是从连接池中获取一个连接的语句
但是针对sqlserver,似乎互联网上没有人提及如何连,而且上面mysql的这种简洁写法也不再适用。一个原因在于python中的_mssql库并不是DB-SIG compliant module,只有与之一同打包的pymssql库(其实pymssql就是在_mssql的基础上按照规范封装了一层罢了)才是。折腾了许久,在google code里也搜索了不少DBUtil python代码,终于摸索出这么一条路子:
import _mssql # 连接Ms sql server 2000的库
import pymssql # DB-SIG compliant module for communicating with MS SQL servers
from DBUtils.PooledDB import PooledDB
args = (0,0,0,config.pool_max_connections,0,0,None )
conn_kwargs = {'host':databaseHost+','+databasePort, 'user':databaseUserName, 'password':databaseUserPwd, 'database': databaseName}
config.databaseConnPool = PooledDB(pymssql, *args, **conn_kwargs)
# 传入参数时,位置参数要在最前面,关键字参数其次,变长参数再次,关键字变长参数最后
# args 是 关键字参数
# conn_kwargs 变长参数
查看本文来源
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者