python操作MySQL--实例

有一段时间,没更新,但这都不是自己懒惰的借口,希望自己能坚持下去;

python可以操作MySQL 数据库,需要安装的是MySQL-python,并且实现读入excel表及生成excel 表,则需要xlrd及xlwt这两个python 模块;

1、安装MySQL-python:

  yum -y install MySQL-python    #########在python 程序导入模块时名字为MySQLdb

2、安装excel两个模块:

  pip install xlrd xlwt   ####pip 默认使用的是国外的镜像,网速较慢,可以更换为国内的镜像,临时则使用 -i https://pypi.douban.com/simple/

3、以下代码中其它的模块均为内置模块;

4、导入excel的模板内容如下:

  第一行所有列有数据,第二行部分列有数据

1 #!/usr/bin/env python
  2 #coding:utf-8
  3 import MySQLdb,sys,xlwt,subprocess,datetime,xlrd,time
  4 reload(sys)    #######以下两行解决了写excel 时中文字符的问题
  5 sys.setdefaultencoding(‘utf-8‘)
  6 class Mysql_Select(object):
  7     def __init__(self):
  8         pass
  9
 10     def yes_Format(self):
 11         child = subprocess.Popen("date +‘%Y-%m-%d %H:%M:%S‘ -d ‘-1 days‘",shell=True,stdout=subprocess.PIPE)
 12         yes_time = child.stdout.read()
 13         return yes_time            ############返回前一天的日期,供Mysql 语句使用
 14
 15     def mysql_Connect_Status(self,date_yesterday):
 16         conn = MySQLdb.connect(user=‘‘,passwd=‘‘,host=‘‘,charset=‘utf8‘)
 17         cur = conn.cursor()
18          machines_status = cur.fetchmany(cur.execute("select bdass.salesOrder.orderNum,bdass.salesOrder.salesTime,bdas    s.machines.name,bdass.salesOrder.goodsCode,bdass.salesOrder.salesPrice from bdass.salesOrder,bdass.machines where bda    ss.salesOrder.salesTime > ‘%s‘ and bdass.salesOrder.machineId = bdass.machines.clientId "%date_yesterday))
 19         cur.close()
 20         conn.close()
 21         return machines_status        #############查询生产服务器的Mysql的表
 22
 23     def excel_Read(self,machines_status):
 24         W=xlwt.Workbook(‘utf8‘)       #########创建一个excel写对象
 25         ws = W.add_sheet(‘Sheet1‘)    #########增加一个sheet
 26         ws.col(0).width = 9999         ##########表格的列属性
 27         ws.col(1).width = 6666
 28         ws.col(20).width = 6666
 29         ws.col(43).width = 6666
 30         ws.col(44).width = 6666
 31         ws.col(45).width = 6666
 32         ws.col(65).width = 9999
 33         ws.col(103).width = 6666
 34         ws.col(104).width = 6666
 35         module_data = xlrd.open_workbook(‘sales_module.xls‘)   #######创建一个excel读对象
  36       table = module_data.sheet_by_index(0)    #########读取第一个sheet
 37         ncols = table.ncols                      #########表的所有列
 38         for raws in xrange(len(machines_status)): ############## 写模板里的固定值;
 39             for values in xrange(ncols):
 40                 if values not  in [0,1,20,43,44,45,53,54,55,56,57,59,65,103,104]:
 41                     ws.write(raws+1,values,label=table.cell(1,values).value)
 42
 43         for values in xrange(ncols):  ##############写模板的第一行
 44             ws.write(0,values,label=table.cell(0,values).value)
 45
 46         for raw in xrange(len(machines_status)): ###########写订单的数据;
 47             ws.write(raw+1,0,label=machines_status[raw][0])  #订单号
 48             ws.write(raw+1,1,label=str(machines_status[raw][1]).split(‘ ‘)[0])  #订单日期
 49             ws.write(raw+1,20,label=machines_status[raw][2])    #表头备注
 50             ws.write(raw+1,43,label=str(machines_status[raw][1]).split(‘ ‘)[0]) #表头预发货日期
 51             ws.write(raw+1,44,label=str(machines_status[raw][1]).split(‘ ‘)[0]) #表头预完工日期
 52             ws.write(raw+1,45,label=str(machines_status[raw][3]))   #存货编码
 53             ws.write(raw+1,53,label=str(machines_status[raw][4]))   #报价
54              ws.write(raw+1,53,label=str(machines_status[raw][4]))   #报价
 54             ws.write(raw+1,54,label=str(machines_status[raw][4]))   #含税单价
 55             ws.write(raw+1,55,label=str(machines_status[raw][4] - round(machines_status[raw][4]/1.17*0.17,2)))  #金额
    _原币_无税
 56             ws.write(raw+1,56,label=str(‘%.2f‘ %(machines_status[raw][4]/1.17*0.17)))   #税额
 57             ws.write(raw+1,57,label=str(machines_status[raw][4]))   #价税合计
 58             ws.write(raw+1,59,label=str(machines_status[raw][4] - round(machines_status[raw][4]/1.17*0.17,2)))  #无税
    _单价
 59             ws.write(raw+1,65,label=str(machines_status[raw][0]))   #备注
 60             ws.write(raw+1,103,label=str(machines_status[raw][1]).split(‘ ‘)[0])    #预完工日期
 61             ws.write(raw+1,104,label=str(machines_status[raw][1]).split(‘ ‘)[0])    #预发货日期
 62
 63         W.save(‘模板生成.xls‘)    ########最后保存并命名
 64
 65
 66     def copy_Remote(self):          #####传送到远程服务器
 67         child = subprocess.Popen("scp -P 7777 模板生成.xls server_net:/share/技术/",shell=True,stdout=subprocess.PIPE    )
 68
 69 system = Mysql_Select()
70 if __name__ == ‘__main__‘:
 71     yes_time = system.yes_Format()
 72     machines_status = system.mysql_Connect_Status(yes_time)
 73     system.excel_Read(machines_status)
 74     system.copy_Remote()

最后代码完成并生成的excel表如下:

代码部分,还有待优化,加油;

				
时间: 2024-10-09 09:53:05

python操作MySQL--实例的相关文章

Python操作Mysql实例代码教程在线版(查询手册)_python

实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding: UTF-8 -*- #安装MYSQL DB for pythonimport MySQLdb as mdb con = None try:    #连接mysql的方法:connect('ip','user','password','dbname')    con = mdb.connect('

python操作Mysql实例

本文介绍了Python操作mysql,执行SQL语句,获取结果集,遍历结果集,取得某个字段,获取表字段名,将图片插入数据库,执行事务等各种代码实例和详细介绍. 实例1.获取MYSQL的版本 #!/usr/bin/env python   import MySQLdb as mdb   try:       con=mdb.connect('localhost','root','123','test') #连接mysql的方法      cur=con.cursor() #所有的查询,都在连接co

Python操作Mysql实例代码

实例1.取得MYSQL的版本在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 代码如下: # -*- coding: UTF-8 -*- #安装MYSQL DB for pythonimport MySQLdb as mdb con = None try:    #连接mysql的方法:connect('ip','user','password','dbname')    con = mdb.connect('localh

【转】python操作mysql数据库

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问Python数据库接口及API查看详细的支持数据库列表. 不同的数据库你需要下载

Python操作MySQL(1)

Python操作MySQL Python DB-API Python标准数据接口为Python DB-API,其提供了数据库应用编程接口. Python DB-API使用流程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 安装pymysql pymysql是用于Python连接mysql数据库的接口,它实现了Python数据库API规范V2.0,基于 MySQL C API 上建立的. 连接数据库 连接数据库前,必须确保以下事项: 1. 已经安装了mysql服务

python操作mysql ------- SqlAchemy正传

本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 pip3 install pymysql 使用操作 1.执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1

python操作mysql数据库

连接数据库 输入值 存入数据库 关闭 import string import mysql.connector conn=mysql.connector.connect(user='root',password='test',database='dalian',use_unicode=True) cursor=conn.cursor() a=raw_input('enter an id: ') b=raw_input('enter a name: ') while(a!='quit' or b!

python操作MySQL

本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 ? 1 pip3 install pymysql 使用操作 1.执行SQL + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/usr/bin/env python # -*-

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

使用python操作mysql数据库

这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector-python 是MySQL官方的Python驱动 https://dev.mysql.com/doc/connector-python/en/ 安装: pip install mysql-connector 示例代码: https://github.com/mike-zhang/pyExample