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标准库之sqlite3使用实例
Nov 25 Python
Python pickle模块用法实例分析
May 27 Python
Python3访问并下载网页内容的方法
Jul 28 Python
Python实现的选择排序算法示例
Nov 29 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
python实现windows壁纸定期更换功能
Jan 21 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
解决Django连接db遇到的问题
Aug 29 Python
tensorflow自定义激活函数实例
Feb 04 Python
Python3爬虫发送请求的知识点实例
Jul 30 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
php类自动加载器实现方法
2015/07/28 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python框架django基础指南
2016/09/08 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
Python实现上下文管理器的方法
2020/08/07 Python
python装饰器代码深入讲解
2021/03/01 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
女大学生自我鉴定
2013/12/09 职场文书
2014年党小组工作总结
2014/12/20 职场文书
大学生实习介绍信
2015/05/05 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
Python加密与解密模块hashlib与hmac
2022/06/05 Python