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 RuntimeError: thread.__init__() not called解决方法
Apr 28 Python
python数据类型_字符串常用操作(详解)
May 30 Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
python实现七段数码管和倒计时效果
Nov 23 Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
python实现超级玛丽游戏
Mar 18 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
Python 中的函数装饰器和闭包详解
Feb 06 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 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利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
phpwind放自动注册方法
2006/12/02 Javascript
通用JS事件写法实现代码
2009/01/07 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
设置器与访问器的定义以及各自特点
2016/01/08 面试题
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
歌唱比赛主持词
2014/03/18 职场文书
代办委托书怎样写
2014/04/08 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
离婚案件原告代理词
2015/05/23 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
MySQL数据迁移相关总结
2021/04/29 MySQL