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 for Informatics 第11章 正则表达式(一)
Apr 21 Python
Python实现的中国剩余定理算法示例
Aug 05 Python
numpy返回array中元素的index方法
Jun 27 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
基于python实现把图片转换成素描
Nov 13 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
Python 日期与时间转换的方法
Aug 01 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
一个程序下载的管理程序(四)
2006/10/09 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
php实现记事本案例
2020/10/20 PHP
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
学习python (2)
2006/10/31 Python
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
Gap工厂店:Gap Factory
2017/11/02 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
C语言编程练习
2012/04/02 面试题
校园活动策划书范文
2014/01/10 职场文书
一年级班主任寄语
2014/01/19 职场文书
个性与发展自我评价
2015/03/06 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis