问题:续接上一篇。说干咱就干呀,勤勤恳恳写程序呀!

目标:此篇开始进入正题了。为实现我们整个项目功能而开始实现各个子模块功能。首先实现第一篇列出的分步功能模块的第五步:

5、python连接SQL Server,读写数据

解决方案:查找python与SQL Server交互的相关资料,编写涉及的功能函数,并将其封装在一个通用的SQLHelper类中。这样方便使用和维护。

具体实践:

1、新建了一个类: SQLHelper.py。首行添加代码:import pymssql,引用 pymssql包。

2、初始化类时,初始化数据库服务名称,登录用户,登录密码,数据库名称。

def __init__(self, host, user, pwd, db_name):
self.host = host
self.user = user
self.pwd = pwd
self.db_name = db_name

3、获取连接数据库的连接信息,返回

def get_connect(self):
"""
得到连接信息
返回: conn.cursor()
"""
if not self.db_name:
Error_Message = "没有设置数据库信息"
raise (NameError, Error_Message)
try:
self.conn = pymssql.connect(host=self.host, user=self.user, password=self.pwd, database=self.db_name,
charset="utf8")
cur = self.conn.cursor()
except Exception as e:
print(e)
Error_Message = "连接数据库失败"
if not cur:
Error_Message = "连接数据库失败"
raise (NameError, Error_Message)
else:
return cur

4、查询函数,无查询执行函数

def exec_query(self, sql):
"""
执行查询语句
返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段 调用示例:
ms = MSSQLHelper(host="localhost/MSSQL2008",user="sa",pwd="xxx",db_name="xxx")
list_data = ms.exec_query("select ID, UserName from dbo.Users")
for (ID, UserName) in list_data:
print str(ID),UserName
"""
cur = self.get_connect()
cur.execute(sql)
list_data = cur.fetchall() # 查询完毕后必须关闭连接
self.conn.close()
return list_data def exec_non_query(self, sql):
"""
执行非查询语句 调用示例:
ms = MSSQLHelper(host="localhost/MSSQL2008",user="sa",pwd="xxx",db_name="xxx")
ms.exec_query("insert into Users values('3','风清扬')") """
try:
cur = self.get_connect()
cur.execute(sql)
self.conn.commit()
self.conn.close()
return True
except Exception as e:
print(e)
Error_Message = e
return False

Python3实战系列之八(获取印度售后数据项目)的更多相关文章

  1. Python3实战系列之一(获取印度售后数据项目)

    问题:公司在印度开设生产工厂并在当地销售手机,生产.销售系统均由印度开发维护.对总部需要的售后数据,采用每日在ftp上提供一个.xlsx文件,给总部使用.总部需要将此数据导入到总部的销量统计系统中,以 ...

  2. Python3实战系列之七(获取印度售后数据项目)

    问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:此篇开始进入正题了.为实现我们整个项目功能而开始实现各个子模块功能.首先实现第一篇列出的分步功能模块的第四步: 4.python读取excel ...

  3. Python3实战系列之九(获取印度售后数据项目)

    项目现状:已经部署在服务器上并正常运行了. 1.服务器上的部署 2.下载到服务器的文件列表 3.转存在到数据库SQL Server中的数据 项目总结:这次项目采用python来实现,刚开始还是有点担忧 ...

  4. Python3实战系列之六(获取印度售后数据项目)

    问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:此篇我们试着把python程序打包成.exe程序.这样就可以在服务器上运行了.实现首篇计划列表功能模块的第三步: 3..exe文件能在服务器上 ...

  5. Python3实战系列之四(获取印度售后数据项目)

    问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:此篇开始进入正题了.为实现我们整个项目功能而开始实现各个子模块功能.首先实现第一篇列出的分步功能模块的第一步: 1.python访问ftp,下 ...

  6. Python3实战系列之二(获取印度售后数据项目)

    问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:安装python和pycharm.要编写并运行python程序就需要电脑有开发工具和运行环境,所以此篇就是安装编辑和运行python程序的软件 ...

  7. Python3实战系列之五(获取印度售后数据项目)

    问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:此篇我们试着把python程序打包成.exe程序.这样就可以在服务器上运行了.实现首篇计划列表功能模块的第二步: 2.将python程序转为 ...

  8. Python3实战系列之三(获取印度售后数据项目)

    问题:续接上一篇.说干咱就干呀,勤勤恳恳写程序呀! 目标:实现第一个python程序的“Hello world!” 解决方案:新建一个项目Test,创建一个Test.py文件.在文件中实现打印出“He ...

  9. memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程

    1.1.1. 新建Item分配内存过程 1:快速定位slab classid,先计算Item长度 key键长+flag+suffix(16字节)+value值长+结构大小(32字节),如90byte ...

随机推荐

  1. centos下vi的用法大全

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  2. [转][C#]程序的动态编译

    转自:https://blog.csdn.net/clb929/article/details/51385399 附 文件下载

  3. Centos7 安装redis集群哨兵模式

    https://blog.csdn.net/lihongtai/article/details/82826809

  4. debian系统的另一个包管理器aptitude

    最近在玩OPI的时候遇到了一个包因为各种依赖问题死活装不上.苦搜很久找到这个aptitude包管理器. 基于debain衍生的各种操作系统比较常用包管理器是apt,不过apt在遇到依赖问题的时候处理得 ...

  5. Python + Robot Framework 环境搭建

    一.Python 安装 说明:由于RIDE是基于python2.x开发,后期未做python3.x兼容,所以这里安装python2.7. 链接: https://pan.baidu.com/s/1yf ...

  6. hive的使用

    1,前言 书接上回,接着对上一个hive安装后环境下的hive使用.

  7. MySQL - 用户变量

    MySQL用户变量:基于会话变量实现的,可以暂存值,并传递给同一连接里的下一条sql使用的变量,当客户端连接退出时,变量会被释放. MySQL用户变量应用场景:同一连接,未关闭情况下,帮你暂存一些计算 ...

  8. react portals

    来源:https://segmentfault.com/a/1190000011668286 Portals是react 16.3 提供的官方解决方案,使得组件可以脱离父组件层级挂载在DOM树的任何位 ...

  9. Sql入门学习——关系范式

    --------关系 --------范式 一.三种关系 1.一对一关系 关系数据库中,第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关. 2.一 ...

  10. Win32API标准模板

    #include<Windows.h> LRESULT CALLBACK WndProc //处理发送到窗口的消息的应用程序定义的函数.wndproc类型定义指向此回调函数的指针. //W ...