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编程中基本的数学计算使用
Feb 04 Python
Python中time模块和datetime模块的用法示例
Feb 28 Python
Python中MySQL数据迁移到MongoDB脚本的方法
Apr 28 Python
Python实现类的创建与使用方法示例
Jul 25 Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 Python
python smtplib模块实现发送邮件带附件sendmail
May 22 Python
python单例设计模式实现解析
Jan 07 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
为什么是 Python -m
Jun 19 Python
Python类的继承super相关原理解析
Oct 22 Python
python装饰器代码深入讲解
Mar 01 Python
python游戏开发Pygame框架
Apr 22 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连接access数据库
2015/03/27 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
jquery自定义表格样式
2015/11/23 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
react-native之ART绘图方法详解
2017/08/08 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
详解python里的命名规范
2018/07/16 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
一个入门级python爬虫教程详解
2021/01/27 Python
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
几道PHP面试题
2013/04/14 面试题
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
农村婚礼证婚词
2014/01/08 职场文书
重阳节登山活动方案
2014/02/03 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
学生自我评语大全
2014/04/18 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
单位介绍信格式
2015/01/31 职场文书
高考学习决心书
2015/02/04 职场文书
2019年大学推荐信
2019/06/24 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python