python关于mysql的API--pymysql模块

pymsql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同。

模块安装

  1. pip install pymysql

执行sql语句

  1. #导入pymysql模块
  2. import pymysql
  3.  
  4. # 连接数据库
  5. connect = pymysql.connect(host = '10.135.30.141',port = 3306,user = 'root',passwd = 'root@123',db = 'test',charset = 'utf8')
  6. # 定义游标
  7. cursor = connect.cursor()
  8. #更改获取数据结果的数据类型,默认是元组,可以改为字典等:
  9. # cursor = connect.cursor(cursor=pymysql.cursors.DictCursor)
  10. # 执行SQL,count 是执行sql影响的行数
  11. count = cursor.execute("select * from t1")
  12. # 返回1条
  13. #cursor.fetchone()
  14. # 返回多条
  15. # cursor.fetchmany()
  16. # 返回所有行数
  17. results = cursor.fetchall()
  18. print(results)
  19. #scroll移动光标
  20. #cursor.scroll(-1,mode='relative') # 相对当前位置移动
  21. #cursor.scroll(2,mode='absolute') # 相对绝对位置移动
  22.  
  23. # 提交sql
  24. connect.commit()
  25. # 关闭游标
  26. cursor.close()
  27. #关闭连接
  28. connect.close()

导出数据到excel表格

  1. # __Desc__ = 从数据库中导出数据到excel数据表中
  2. # __author__ yuxiaohao
  3.  
  4. import pymysql
  5. from openpyxl import Workbook
  6. from openpyxl.writer.excel import ExcelWriter
  7. from openpyxl.cell.cell import get_column_letter
  8. import datetime,time,logging
  9.  
  10. # 开始日期
  11. if datetime.date.today().month - 1 == 0:
  12. start_date = datetime.date(datetime.date.today().year -1,datetime.date.today().month - 1 or 12,1)
  13. else:
  14. start_date = datetime.date(datetime.date.today().year, datetime.date.today().month - 1, 1)
  15. # 结束日期
  16. stop_date = datetime.date(datetime.date.today().year,datetime.date.today().month ,1)
  17. # 当天日期
  18. Today = time.strftime('%Y-%m-%d')
  19. # 表格输出路径
  20. DirName = 'E:/'
  21. # 表格名字
  22. FileName = '%sshop-invoices-exp-%s.xlsx' % (DirName, Today)
  23.  
  24. # 需要执行的SQL
  25. SQL=""
  26.  
  27. # SQL转换成小写
  28. SQL=SQL.lower()
  29.  
  30. # 定义日志
  31. logging.basicConfig(filename='%saccess.log' %DirName,
  32. format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
  33. datefmt='%Y-%m-%d %H:%M:%S %p',
  34. level=10)
  35.  
  36. class MYSQL:
  37. def __init__(self):
  38. pass
  39.  
  40. def __del__(self):
  41. self._connect.commit()
  42. self._cursor.close()
  43. self._connect.close()
  44.  
  45. def connectDB(self):
  46. """
  47. 连接数据库
  48. :return:
  49. """
  50. try:
  51. self._connect = pymysql.Connect(
  52. host='',
  53. port=3306,
  54. user='',
  55. passwd='',
  56. db='',
  57. charset='utf8'
  58. )
  59.  
  60. return 0
  61. except:
  62. return -1
  63.  
  64. def export(self, table_name, output_path):
  65. self._cursor = self._connect.cursor()
  66. count = self._cursor.execute(SQL)
  67. logging.info('返回%s行数据' %count)
  68. # 搜取所有结果
  69. results = self._cursor.fetchall()
  70. # 获取字段名
  71. fields_complex = self._cursor.description
  72. # 字段名加入li 列表中
  73. fields = []
  74. for i in range(len(fields_complex)):
  75. fields.append(fields_complex[i][0])
  76. # 创建表格
  77. wb = Workbook()
  78. ws = wb.active
  79. ws = wb.worksheets[0]
  80. # 字段名添加到表格
  81. ws.append(fields)
  82. # 数据添加到表格
  83. for ret in results:
  84. ws.append(ret)
  85. #保存
  86. wb.save(output_path)
  87.  
  88. if __name__ == '__main__':
  89. mysql = MYSQL()
  90. flag = mysql.connectDB()
  91. if flag == -1:
  92. logging.info('数据库连接失败')
  93. else:
  94. logging.info('数据库连接成功')
  95. mysql.export('t1', '%s' % FileName)
  96. mysql.__del__()
  97. if FileName:
  98. logging.info('数据导出成功!')
  99. else:
  100. logging.info('数据导出失败!')

Python3 操作mysql数据库的更多相关文章

  1. python3操作MySQL数据库

    安装PyMySQL 下载地址:https://pypi.python.org/pypi/PyMySQL 1.把操作Mysql数据库封装成类,数据库和表先建好 import pymysql.cursor ...

  2. (接口自动化)Python3操作MySQL数据库

    基础语法: import pymysql #导入模块 conn = pymysql.connect(host='localhost',user='root', passwd='123456', db= ...

  3. python3操作mysql数据库增删改查

    #!/usr/bin/python3 import pymysql import types db=pymysql.connect("localhost","root&q ...

  4. python3操作mysql数据库表01(基本操作)

    #!/usr/bin/env python# -*- coding:UTF-8 -*- import requestsfrom bs4 import BeautifulSoupfrom bs4 imp ...

  5. python3操作MySQL数据库,一次插入多条记录的方法

    这里提供一个思路,使用字符串拼接的方法,将sql语句拼接出来,然后去执行: l = ["] s = '-' print(s.join(l))

  6. python3操作mysql数据库表01(封装查询单条、多条数据)

    #!/usr/bin/env python# -*- coding:UTF-8 -*- import pymysql# import os'''封装查询单条.多条数据'''# os.environ[' ...

  7. python【第十二篇下】操作MySQL数据库以及ORM之 sqlalchemy

    内容一览: 1.Python操作MySQL数据库 2.ORM sqlalchemy学习 1.Python操作MySQL数据库 2. ORM sqlachemy 2.1 ORM简介 对象关系映射(英语: ...

  8. python3操作mysql教程

    一.下载\安装\配置 1. python3 Python3下载网址:http://www.python.org/getit/ 当前最新版本是python3.2,下载地址是 http://www.pyt ...

  9. python接口自动化(三十八)-python操作mysql数据库(详解)

    简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...

随机推荐

  1. python3 selenuim PC端使用chrome模拟手机进行H5自动化

    情况说明:初次在做PC端使用chrome进行H5自动化测试时,以为和app端自动化一样使用click()就可以对按钮进行点击,找了好几天也没有找到解决方法,有些人说是工程问题,有些人是使用微信进行H5 ...

  2. 【VS开发】解决位图缩放失真

    当用以下函数加载一张位图时,当窗口发生重绘更改大小时,位图将失真: CBitmap bitmap;  bitmap.LoadBitmap(IDB_BITMAP2);  BITMAP bmp;  bit ...

  3. AspNet Core Swagger4.0 生成请求model描述

    今天给大家分享 swagger 俩个冷门的小技巧 获取控制器描述 将 IncludeXmlComments 方法第二个参数设置为 true 即可 public static void IncludeX ...

  4. 文件的上传(1)(表单上传和ajax文件异步上传)

    文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...

  5. CentOS Linux修改默认Bash shell为Zsh shell

    Shell是在程序员与服务器间建立一个桥梁,它对外提供一系列命令,让我们得以控制服务器.常用的Bash就是Shell的一种,也是Linux下默认Shell程序.这里介绍一种更强大的.更人性化的Shel ...

  6. Log的相关用法

    1.最好用静态final定义Log变量 private static final Log log = LogFactory.getLog(MyTest.class); 这样做的好处有三: 可以保证线程 ...

  7. GPIB、USB、PCI、PCI Express和以太网/LAN/LXI

    GPIB 我们研究的第一个总线是IEEE 488总线,较为熟悉的称谓是GPIB(通用接口总线).GPIB是一种在业界已经得到证明的专为仪器控制应用设计的总线.GPIB在过去30年来一直是鲁棒的.可靠的 ...

  8. A Dangerous Maze (期望值)

    https://vjudge.net/problem/LightOJ-1027?tdsourcetag=s_pctim_aiomsg [被满为姐姐碾压 降智打击题]

  9. laravel5.5学习2-路由系统

    一.初识路由 路由系统是所有 PHP 框架的核心,路由承载的是 URL 到代码片段的映射,不同的框架所附带的路由系统是这个框架本质最真实的写照,一丝不挂,一览无余.Laravel 路由中文文档:htt ...

  10. python之self的理解

    一.self的位置是出现在哪里? 首先,self是在类的方法中的,在调用此方法时,不用给self赋值,Python会自动给他赋值,而且这个值就是类的实例--对象本身.也可以将self换成别的叫法例如s ...