python pymysql_python使用pymysql实现操作mysql
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。
适用环境
python版本 >=2.6或3.3
mysql版本>=4.1
安装
可以使用pip安装也可以手动下载安装。
使用pip安装,在命令行执行如下命令:
pip install PyMySQL
其中的X.X是版本(目前可以获取的最新版本是0.6.6)。
下载后解压压缩包。在命令行中进入解压后的目录,执行如下的指令:
python setup.py install
建议使用pip安装。
使用示例
连接数据库如下:
1
2
3
4
5
6
7
8
9
10
11
import pymysql.cursors
# Connect to the database
connection= pymysql.connect(host='127.0.0.1',
port=3306,
user='root',
password='zhyea.com',
db='employees',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
也可以使用字典进行连接参数的管理,我觉得这样子更优雅一些:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pymysql.cursors
config= {
'host':'127.0.0.1',
'port':3306,
'user':'root',
'password':'zhyea.com',
'db':'employees',
'charset':'utf8mb4',
'cursorclass':pymysql.cursors.DictCursor,
}
# Connect to the database
connection= pymysql.connect(**config)
插入数据:
执行sql语句前需要获取cursor,因为配置默认自动提交,故在执行sql语句后需要主动commit,最后不要忘记关闭连接:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from datetimeimport date, datetime, timedelta
import pymysql.cursors
#连接配置信息
config= {
'host':'127.0.0.1',
'port':3306,
'user':'root',
'password':'zhyea.com',
'db':'employees',
'charset':'utf8mb4',
'cursorclass':pymysql.cursors.DictCursor,
}
# 创建连接
connection= pymysql.connect(**config)
# 获取明天的时间
tomorrow= datetime.now().date()+ timedelta(days=1)
# 执行sql语句
try:
with connection.cursor() as cursor:
# 执行sql语句,插入记录
sql= 'INSERT INTO employees (first_name, last_name, hire_date, gender, birth_date) VALUES (%s, %s, %s, %s, %s)'
cursor.execute(sql, ('Robin','Zhyea', tomorrow,'M', date(1989,6,14)));
# 没有设置默认自动提交,需要主动提交,以保存所执行的语句
connection.commit()
finally:
connection.close();
执行查询:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import datetime
import pymysql.cursors
#连接配置信息
config= {
'host':'127.0.0.1',
'port':3306,
'user':'root',
'password':'zhyea.com',
'db':'employees',
'charset':'utf8mb4',
'cursorclass':pymysql.cursors.DictCursor,
}
# 创建连接
connection= pymysql.connect(**config)
# 获取雇佣日期
hire_start= datetime.date(1999,1,1)
hire_end= datetime.date(2016,12,31)
# 执行sql语句
try:
with connection.cursor() as cursor:
# 执行sql语句,进行查询
sql= 'SELECT first_name, last_name, hire_date FROM employees WHERE hire_date BETWEEN %s AND %s'
cursor.execute(sql, (hire_start, hire_end))
# 获取查询结果
result= cursor.fetchone()
print(result)
# 没有设置默认自动提交,需要主动提交,以保存所执行的语句
connection.commit()
finally:
connection.close();
这里的查询支取了一条查询结果,查询结果以字典的形式返回:
从结果集中获取指定数目的记录,可以使用fetchmany方法:
result = cursor.fetchmany(2)
不过不建议这样使用,最好在sql语句中设置查询的记录总数。
获取全部结果集可以使用fetchall方法:
result = cursor.fetchall()
因为只有两条记录,所以上面提到的这两种查询方式查到的结果是一样的:
[{'last_name': 'Vanderkelen', 'hire_date': datetime.date(2015, 8, 12), 'first_name': 'Geert'}, {'last_name': 'Zhyea', 'hire_date': datetime.date(2015, 8, 21), 'first_name': 'Robin'}]
在django中使用
在django中使用是我找这个的最初目的。目前同时支持python3.4、django1.8的数据库backend并不好找。这个是我目前找到的最好用的。
设置DATABASES和官方推荐使用的MySQLdb的设置没什么区别:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mytest',
'USER': 'root',
'PASSWORD': 'zhyea.com',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
关键是这里:我们还需要在站点的__init__.py文件中添加如下的内容:
import pymysql
pymysql.install_as_MySQLdb()
最后给大家附上pymysql实现增删改查的代码,希望大家能够喜欢
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/python
#coding:gbk
import pymysql
from builtinsimport int
#将MysqlHelper的几个函数写出来
def connDB():#连接数据库
conn=pymysql.connect(host="localhost",user="root",passwd="zx69728537",db="student");
cur=conn.cursor();
return (conn,cur);
def exeUpdate(conn,cur,sql):#更新或插入操作
sta=cur.execute(sql);
conn.commit();
return (sta);
def exeDelete(conn,cur,IDs):#删除操作
sta=0;
for eachIDin IDs.split(' '):
sta+=cur.execute("delete from students where Id=%d"%(int(eachID)));
conn.commit();
return (sta);
def exeQuery(cur,sql):#查找操作
cur.execute(sql);
return (cur);
def connClose(conn,cur):#关闭连接,释放资源
cur.close();
conn.close();
result=True;
print("请选择以上四个操作:1、修改记录,2、增加记录,3、查询记录,4、删除记录.(按q为退出)");
conn,cur=connDB();
number=input();
while(result):
if(number=='q'):
print("结束操作");
break;
elif(int(number)==1):
sql=input("请输入更新语句:");
try:
exeUpdate(conn, cur, sql);
print("更新成功");
except Exception:
print("更新失败");
raise;
elif(int(number)==2):
sql=input("请输入新增语句:");
try:
exeUpdate(conn, cur, sql);
print("新增成功");
except Exception:
print("新增失败");
raise;
elif(int(number)==3):
sql=input("请输入查询语句:");
try:
cur=exeQuery(cur, sql);
for itemin cur:
print("Id="+str(item[0])+" name="+item[1]);
except Exception:
print("查询出错");
raise;
elif(int(number)==4):
Ids=input("请输入Id,并用空格隔开");
try:
exeDelete(conn, cur, Ids);
print("删除成功");
except Exception:
print("删除失败");
raise;
else:
print("非法输入,将结束操作!");
result=False;
break;
print("请选择以上四个操作:1、修改记录,2、增加记录,3、查询记录,4、删除记录.(按q为退出)");
number=input("请选择操作");
python pymysql_python使用pymysql实现操作mysql相关推荐
- python pymysql实例_Python使用pymysql模块操作mysql增删改查实例分析
Python使用pymysql模块操作mysql增删改查实例分析 发布时间:2020-09-30 16:42:12 来源:脚本之家 阅读:92 本文实例讲述了Python使用pymysql模块操作My ...
- Python之Pymysql模块操作MySQL增删改查
Python3 MySQL 数据库连接 - PyMySQL 驱动 PyMySQL 连接数据库,实现增删改查 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQ ...
- MySQL练习记录——利用Python的pymysql模块操作MySQL数据库
文章目录 前言 # 第一部分:数据库练习 准备数据 创建数据表 插入数据 SQL演练 1. SQL语句的强化 2. 创建"商品分类"表 3. 同步表数据 4. 创建"商品 ...
- python如何控制mysql_python如何操作mysql
mysql 使用 启动服务 sudo systemctl start mysql pip3 install pymysql python 操作数据库: 定义类 import pymysql class ...
- python增删改查mysql_Python操作MySQL(增删改查)
Python操作MySQL数据库方法.方式总结 import pandas as pd import pymysql import sqlalchemy from sqlalchemy import ...
- 老鱼Python数据分析——篇三:操作MySQL数据库
Python操作数据库非常的方便. 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块. DB-API 是一个 ...
- python连接数据库的技术_Python操作MySQL数据库的三种方法
(1) 什么是MySQLdb? MySQLdb 是用于 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. ...
- python mysqldb_python学习-使用MySQLdb操作mysql数据库
操作环境为python2.7 centos7 一.MySQLdb的安装与配置 MySQLdb是用于Python连接mysql数据库的接口,它实现了Python数据库api规范2.0. 按照以下方式安装 ...
- python的数据库_python数据库操作-mysql数据库
一:连接 1:本地连接 mysql -u用户名 -p密码 2:连接远程服务器 mysql -u用户名 -p密码 -hip地址 -P端口号 线下修改远程服务端上部署的mysql服务器 二:创建数据库 c ...
最新文章
- 20155328 《信息安全系统设计基础》 课程总结
- .NET中的IO操作基础介绍
- 如何选择一个合适的建站系统?
- HashMap根据value值排序
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
- mes实施顾问前景如何_国匠智能制造培训|MES的两种实施顾问类型
- 最重要的是跑完,而不是刚开始跑得有多快
- matlab数据接口技术,matlab接口技术与应用
- Pandas 排序之后索引问题
- 3D视觉(一)三维数学基础教程和SLAM
- 华泰证券:科技无界,赋能金融新生态
- 基于北京二手房价数据的探索性数据分析和房价评估——房价评估模型构建
- 免费送瑞星产品序列号?其实送的是Trojan-Downloader.Win32.VB.lbv
- VSCode配置git图文
- (转)CSS实现一个会旋转的太极图案
- 简单实现购物车相同物品累加
- 全球最易受黑客攻击的国家:中国排第五
- 对于毕业论文的一点小想法
- 数据分析面试题——业务篇(3)
- 不能设置默认打印机的解决办法