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删除文件示例分享
Jan 28 Python
Python编码类型转换方法详解
Jul 01 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
Jun 27 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
Python操作json的方法实例分析
Dec 06 Python
Python 3.x基于Xml数据的Http请求方法
Dec 28 Python
基于python爬取梨视频实现过程解析
Nov 09 Python
解决python3中os.popen()出错的问题
Nov 19 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
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
js原型链原理看图说明
2012/07/07 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python内建数据结构详解
2016/02/03 Python
Python切片知识解析
2016/03/06 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python实现手机通讯录搜索功能
2018/02/22 Python
python线程池threadpool实现篇
2018/04/27 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python脚本开机自启的实现方法
2019/06/28 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python远程linux执行命令实现
2020/11/11 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript
Java使用HttpClient实现文件下载
2022/08/14 Java/Android