MySQL适配器PyMySQL详解


Posted in Python onSeptember 20, 2017

本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。

什么是 PyMySQL?

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL 安装
在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip install PyMySQL

如果你的系统不支持 pip 命令,可以使用以下方式安装:

1、使用 git 命令下载安装包安装(你也可以手动下载):

$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install

2、数据库操作实例,直接上代码。

import pymysql
import datainfo
import time

#获取参数

host = datainfo.host
username = datainfo.username
password = datainfo.password
database = datainfo.db

print()

#测试数据库连接
def testconnect():

 #打开数据库链接

 db = pymysql.connect(host,username,password,database)

 #使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 #使用execute()方法执行SQL查询

 cursor.execute("select version()")

 #使用fetchone ()获取单条数据

 data = cursor.fetchone()

 print(data)

 db.close()

#插入数据库
def InsertDate():
 #打开数据库链接

 db = pymysql.connect(host,username,password,database,charset='utf8')

 #使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 create_time = time.strftime('%Y-%m-%d %H:%M:%S')
 update_time = time.strftime('%Y-%m-%d %H:%M:%S')
 start_time = time.strftime('%Y-%m-%d %H:%M:%S')
 end_time = time.strftime('%Y-%m-%d %H:%M:%S')
 remark = "测试插入信息"
 print("开始")
 #Sql 插入语句
 sql = "insert into demo(start_time,end_time,creat_time,update_time,remark) " \
   "VALUES ('%s','%s','%s','%s','%s')"\
   %(start_time,end_time,create_time,update_time,remark)
 try:
  #执行sql
  print("执行插入")
  tt = cursor.execute(sql)
  print(tt)
  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()


#查询操作
def selectData():
 db = pymysql.connect(host, username, password, database, charset='utf8')

 # 使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 sql = "select * from demo where id >='%d'" %(1)
 try:
  #执行sql
  print("执行查询")
  cursor.execute(sql)
  results = cursor.fetchall()
  for row in results:
   id = row[0]
   start_time = row[1]
   end_time = row[2]
   create_time = row[3]
   update_time = row[4]
   remark = row[5]
   #打印结果
   print("id = %d,start_time=%s,end_time=%s,create_time=%s,update_time=%s,remark=%s" %(id,start_time,end_time,create_time,update_time,remark))

  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)

 db.close()

#更新操作
def update_data():
 db = pymysql.connect(host, username, password, database, charset='utf8')

 # 使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()
 update_time = time.strftime('%Y-%m-%d %H:%M:%S')
 sql = "update demo set update_time ='%s' where id >='%d' " %(update_time,1)
 try:
  #执行sql
  print("执行更新")
  cursor.execute(sql)

  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()

#删除操作
def delete_Date():
 db = pymysql.connect(host, username, password, database, charset='utf8')

 # 使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 sql = "delete from demo where id <'%d' " %(1)
 try:
  #执行sql
  print("执行删除")
  cursor.execute(sql)

  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()


if __name__ == '__main__':
 testconnect()
 InsertDate()
 selectData()
 update_data()
 delete_Date()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现dnspod自动更新dns解析的方法
Feb 14 Python
python 类详解及简单实例
Mar 24 Python
Pycharm学习教程(2) 代码风格
May 02 Python
Python标准库sched模块使用指南
Jul 06 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
Python求凸包及多边形面积教程
Apr 12 Python
Python的in,is和id函数代码实例
Apr 18 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
Python字符串格式化的方法(两种)
Sep 19 #Python
python3 pillow生成简单验证码图片的示例
Sep 19 #Python
Python文件操作之合并文本文件内容示例代码
Sep 19 #Python
使用Python &amp; Flask 实现RESTful Web API的实例
Sep 19 #Python
python基本语法练习实例
Sep 19 #Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 #Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 #Python
You might like
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
BootStrap table表格插件自适应固定表头(超好用)
2016/08/24 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
Python中的Numpy入门教程
2014/04/26 Python
python logging类库使用例子
2014/11/22 Python
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
2018/12/28 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
Python安装selenium包详细过程
2019/07/23 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
铭立家具面试题
2012/12/06 面试题
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
给分销商的致歉信
2014/01/14 职场文书
学生会主席演讲稿
2014/04/25 职场文书
图书室标语
2014/06/21 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书