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 开发者应从2.x还是3.x着手?
Nov 16 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
Pandas之drop_duplicates:去除重复项方法
Apr 18 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python 函数中的内置函数及用法详解
Jul 02 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
python 随机森林算法及其优化详解
Jul 11 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
从pandas一个单元格的字符串中提取字符串方式
Dec 17 Python
pytorch-RNN进行回归曲线预测方式
Jan 14 Python
python实现经典排序算法的示例代码
Feb 07 Python
Python docx库删除复制paragraph及行高设置图片插入示例
Jul 23 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP中的表达式简述
2016/05/29 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
Python random模块常用方法
2014/11/03 Python
Python随机生成数模块random使用实例
2015/04/13 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
django实现日志按日期分割
2020/05/21 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
家庭户外服装:Hawkshead
2017/11/02 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
中学生操行评语大全
2014/04/24 职场文书
ktv好的活动方案
2014/08/15 职场文书
收费员岗位职责
2015/02/14 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
签字仪式主持词
2015/07/03 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android
Linux中文件的基本属性介绍
2022/06/01 Servers