Python3 数据库操作
作者: dkvirus 发表于: 2018-10-09 14:28:56 最近更新: 2018-10-17 13:40:46

python2 和 python3 连接数据库使用的包都不一样,刚开始接触 python 操作数据库在这块坑了不少时间。

一、Python3 连接 Mysql/Mariadb

1. 概述

python2 连接数据库用 MysqlDB 包,python3 连接 mysql 使用 PyMySQL 中间库。

相关文档:

2. python3 连接 mariadb

安装模块

1
$ pip3 install PyMySQL

数据库创建表格

1
2
3
4
5
6
7
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 ;

py写脚本操作数据库

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
import pymysql.cursors

# Connect to the database
connection = pymysql.connect(host='111.122.133.144',
user='testuser',
password='testpw',
db='testdb',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor)

try:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))

# connection is not autocommit by default. So you must commit to save
# your changes.
connection.commit()

with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('webmaster@python.org',))
result = cursor.fetchone()
print(result)
finally:
connection.close()

运行可以看到往数据库插入一条数据并查询了一次。

3. 图形化客户端工具

Mac 系统中 Mysql 图形化客户端工具推荐 Sequel Pro,免费,好用。

4. 模糊查询写法

在 mysql 中模糊查询语法为:select * from test where name like '%abc%';,但在 pymysql 中直接这么写 sql 会报错,正确写法如下:

1
2
name = 'dk'
sql = 'select * from test where name like "%%%%%s%%%%"' % name

5. 批量操作

批量操作

二、Python3 连接 Mongodb

首页
友链
归档
dkvirus
动态
RSS