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基于PycURL自动处理cookie的方法
Jul 25 Python
python实现RSA加密(解密)算法
Feb 17 Python
Python基于二分查找实现求整数平方根的方法
May 12 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
python 深度学习中的4种激活函数
Sep 18 Python
Python hashlib模块的使用示例
Oct 09 Python
Python中rapidjson参数校验实现
Jul 25 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查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
Python 探针的实现原理
2016/04/23 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
python对html过滤处理的方法
2018/10/21 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
思想政治教育专业个人求职信范文
2013/12/20 职场文书
2014年师德承诺书
2014/05/23 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
如何在Python项目中引入日志
2021/05/31 Python
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL