vike681 发表于 2017-12-11 22:30:44

虫师大人不华,君子务实。

  之前写过一篇 Python使用MySQL数据库的博客,主要使用的是Python2和MySQLdb驱动。

  python使用mysql数据库
  然而,2016年开始,我从Python2切换到了Python3,Python2已经基本不再使用,MySQLdb驱动从2014年1月停止了维护。所以,打算重新再来写这篇博客。


[*]Python2 ---> Python3
[*]MySQLdb --> PyMySQL

一,安装PyMySQL
  Python是编程语言,MySQL是数据库,它们是两种不同的技术;要想使Python操作MySQL数据库需要使用驱动。这里选用PyMySQL驱动。下载地址:
  https://pypi.python.org/pypi/PyMySQL
  https://github.com/PyMySQL/PyMySQL
  当然,最简单的安装方式还是使用pip命令。
  > pip installPyMySQL

  把install 换成show命令,查看PyMySQL安装是否成功。


二,创建MySQL表
  执行下面的SQL语句,创建一张users 表。
  

CREATE TABLE `users` (  
`id`
INT(11) NOT NULL AUTO_INCREMENT,  
`email`
VARCHAR(255) COLLATE utf8_bin NOT NULL,  
`password`
VARCHAR(255) COLLATE utf8_bin NOT NULL,  

PRIMARY KEY (`id`)  
) ENGINE
=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin  
AUTO_INCREMENT
=1 ;  


三,Python操作MySQL
  接下来才是重点,Python操作MySQL数据库。
  4.1插入数据:
  

import pymysql.cursors  

  

  

# 连接MySQL数据库  
connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='198876', db='guest',
  charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
  

  

# 通过cursor创建游标  
cursor = connection.cursor()
  

  
# 创建sql 语句,并执行
  
sql = "INSERT INTO `users` (`email`, `password`) VALUES ('huzhiheng@itest.info', '123456')"
  
cursor.execute(sql)
  

  
# 提交SQL
  
connection.commit()
  

  不管你使用的是什么工具或库,连接数据库这一步必不可少。host为数据库的主机IP地址,port为MySQL的默认端口号,user为数据的用户名,password为数据库的登录密码,db为数据库的名称。
  cursor()方法创建数据库游标。
  execute()方法执行SQL语句。
  commit()将数据库的操作真正的提交到数据。
  4.2. 查询数据
  

import pymysql.cursors  

  

  

# 连接MySQL数据库  
connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='198876', db='guest', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
  

  

  

# 通过cursor创建游标  
cursor = connection.cursor()
  

  
# 执行数据查询
  
sql = "SELECT `id`, `password` FROM `users` WHERE `email`='huzhiheng@itest.info'"
  
cursor.execute(sql)
  

  
#查询数据库单条数据
  
result = cursor.fetchone()
  
print(result)
  

  
print("-----------华丽分割线------------")
  

  
# 执行数据查询
  
sql = "SELECT `id`, `password` FROM `users`"
  
cursor.execute(sql)
  

  
#查询数据库多条数据
  
result = cursor.fetchall()
  
for data in result:
  
print(data)
  

  

  
# 关闭数据连接
  
connection.close()
  

  接下来的操作就是数据库的查询了。
  fetchone() 用于查询单条数据。
  fetchall() 用于查询多条数据。
  close() 最后不要忘记了关闭数据连接。
  运行结果:
  

{'password': '123456', 'id': 1}  

-----------华丽分割线------------  
{
'password': '123456', 'id': 1}  
{
'password': '654321', 'id': 2}  
页: [1]
查看完整版本: 虫师大人不华,君子务实。