Python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以。如果想链接操作SQL server,需使用第三方包pymssql

pymssql是一个Python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循Python的DBAPI规范,而FreeTDS是一个C语言连接sqlserver的公共开源库

工作原理

  1. 使用connect创建连接对象;
  2. connect.cursor创建游标对象,SQL语句的执行在游标上执行;
  3. cursor.execute()方法执行SQL语句,cursor.fetch()方法获取查询结果;
  4. 如果有反向修改,需执行connect.commit();
  5. 调用close方法关闭游标cursor和数据库连接;

注意:https://www.cnblogs.com/baiyangcao/p/pymssql_basic.html

  1. 一个连接一次只能有一个游标的查询处于活跃状态!
  2. 可以通过使用with语句来省去显示的调用close方法关闭连接和游标
  3. pymssql 2.0.0以上的版本可以通过cursor.callproc方法来调用存储过程

常用封装

class MSSQL:
# 类的构造函数,初始化数据库连接ip或者域名,以及用户名,密码,要连接的数据库名称
def __init__(self,host,user,pwd,db):
self.host=host
self.user=user
self.pwd=pwd
self.db=db # 得到数据库连接信息函数,返回: conn.cursor()
def __GetConnect(self):
self.conn=pymssql.connect(host=self.host,
user=self.user,
password=self.pwd,
database=self.db,
charset='utf8')
cur=self.conn.cursor() #将数据库连接信息,赋值给cur。
if not cur:
raise(NameError,"连接数据库失败")
else:
return cur #执行查询语句,返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段
def ExecQuery(self,sql):
cur = self.__GetConnect() #获得数据库连接信息
cur.execute(sql) #执行Sql语句
resList = cur.fetchall() #获得所有的查询结果
self.conn.close() #查询完毕后必须关闭连接
return resList #返回查询结果 #执行Sql语句函数,无返回结果的,方向修改的
def ExecNonQuery(self,sql):
cur = self.__GetConnect()
cur.execute(sql)
self.conn.commit()
self.conn.close()

Python模块-pymssql的更多相关文章

  1. python模块大全

    python模块大全2018年01月25日 13:38:55 mcj1314bb 阅读数:3049 pymatgen multidict yarl regex gvar tifffile jupyte ...

  2. 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天

     孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...

  3. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  4. python 使用pymssql连接sql server数据库

    python 使用pymssql连接sql server数据库   #coding=utf-8 #!/usr/bin/env python#------------------------------ ...

  5. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  6. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

  7. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  8. windows下安装python模块

    如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...

  9. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

随机推荐

  1. Kubernetes1.91(K8s)安装部署过程(六)--node节点部署

    hi,everybody,我回来了,之前安装到flannel之后,文章一直没有更新,甚至不少小伙伴都来加qq询问是否继续更新了, 这里说明下原因,我在部署1.91node的时候的确出现了各种各样的问题 ...

  2. Error at offset之反序列化

    关于PHP 序列化(serialize)和反序列化(unserialize)出现错误(Error at offset)的解决办法. 首先我们分析一下为什么会出现这个错误: 编码问题 UTF-8: AN ...

  3. XMl转Map-map调用公共模板

    效果 <?xmlversion="1.0"encoding="utf-8"?> <SERVICE> <SERVICE_HEADER ...

  4. scapy学习笔记(5)

    1.ACK Scan >>>ans,unans=sr(IP(dst=,],flags="A") 扫描后,若要找出未过虑的端口: for s,r in ans: i ...

  5. URL Encode

    用VC实现post数据常常会遇到URL编码问题 在此封装一个工具类进行UTF8编码的转换 源码来自php source code 只是简单的封装给C++调用   //URL 编解码类 //来自PHP源 ...

  6. 报错Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

    解决方法:import os                  os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'输入1:显示所有信息 2:只显示warning和erro ...

  7. 自定义View之实现流行的底部菜单栏中间突起:高仿“咸鱼APP”的底部菜单 - z

    http://blog.csdn.net/xh870189248/article/details/75808341 http://blog.csdn.net/yangg194/article/deta ...

  8. 20155226《网络攻防》 Exp5 MSF基础应用

    20155226<网络攻防> Exp5 MSF基础应用 基础问题回答 1.用自己的话解释什么是exploit,payload,encode? exploit : Exploit的英文意思就 ...

  9. [ZJOI2018]保镖

    [ZJOI2018]保镖 Tags:题解 题意 链接 初始在平面上有一些点,九条可怜随机出现在一个矩形内的任意一点.若九条可怜出现在\(O\)点,则平面上所有的点都从\(P_i\)移动到\(P'_i\ ...

  10. CF 55 D. Beautiful numbers

    D. Beautiful numbers 链接 题意: 求[L,R]中多少个数字可以整除它们的每一位上的数字. 分析: 要求模一些数字等于0等价于模它们的lcm等于0,所以可以记录当前出现的数字的lc ...