用Python DBUtils安全连接mssql

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
  DBUtils 是一套允许线程化 Python 程序可以安全和有效的访问数据库的模块 有人在基于Pylons的服务器上测试了使用DBUtils前后的性能对比 ,看上去似乎性能不错。不失为一个管理数据库连接的办法。

   但连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 变长参数

郑昀 20071227 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Python
利用Python生成字符串连接
利用Python生成字符串连接
19 0
|
2月前
|
安全 前端开发 PHP
警惕!Python 中少为人知的 10 个安全陷阱!
警惕!Python 中少为人知的 10 个安全陷阱!
25 1
|
3月前
|
网络协议 开发者 Python
Python网络编程与Socket通信:连接世界的无限可能
在当今数字化时代,Python作为一种强大的编程语言,通过网络编程与Socket通信为我们打开了连接世界的无限可能。本文将深入探讨Python网络编程的基础知识、Socket通信的原理以及实际应用,帮助读者更好地理解并运用这一技术。
|
4月前
|
机器学习/深度学习 Python
【Python机器学习】全连接层与非线性回归、防止过拟合方法的讲解及实战( 附源码)
【Python机器学习】全连接层与非线性回归、防止过拟合方法的讲解及实战( 附源码)
71 0
|
2月前
|
Rust 安全 API
Python潮流周刊#3:PyPI 的安全问题
Python潮流周刊#3:PyPI 的安全问题
30 1
|
1月前
|
SQL 关系型数据库 MySQL
用 Python 连接数据库并进行查询。
【2月更文挑战第12天】【2月更文挑战第32篇】用 Python 连接数据库并进行查询。
|
14天前
|
网络协议 安全 Python
python监听连接请求
【4月更文挑战第5天】本教程介绍了网络编程中服务器监听连接请求的关键步骤。首先,理解监听是服务器在特定端口等待客户端连接的基本概念。接着,设置监听涉及创建套接字、绑定地址和端口,以及开始监听。提供了一个Python示例,展示如何使用socket库实现监听。注意点包括异常处理、并发处理和安全性考虑。学习后,读者能掌握基础的监听连接请求代码编写。
|
1月前
|
网络协议 Python
Python网络编程实现TCP和UDP连接
Python网络编程实现TCP和UDP连接
27 0
|
1月前
|
SQL 关系型数据库 MySQL
使用pymysql工具包连接Python与数据库
使用pymysql工具包连接Python与数据库
33 0
|
1月前
|
网络协议 网络性能优化 Python
python怎么实现tcp和udp连接
python怎么实现tcp和udp连接
16 0