目前接触了3种方式
- 使用第三方库PyMySQL连接;
- Python connector直接连接MySQL
- 使用SQLalchemy连接并创建表;
这里简单介绍一下这三种方式的使用。
PyMySQL
(1)创建数据库
官方文档:https://pymysql.readthedocs.io/en/latest/
讨厌英文或者想快速使用的话点这里
官方简单例子:https://pypi.org/project/PyMySQL/#example
登陆数据库,在数据库中使用下面的代码创建一个名为pymysql_test数据
新建一个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 ;
这时在登陆了数据库后在数据库上建表的过程:
(2)使用PyMySQL创建数据库
pymysql.connect()的参数:
host:主机IP或者本地回环’localhost’
数据库的用户名 user:我这里为 root
数据库的密码 password:我这里为 123456
数据库名 db:pymysql, 建表的时候不用填
字符集 charset: utf8mb4
端口号 port: 默认3306 可以不填,若指定其他则要填写
import pymysql
# 建库和建表
con = pymysql.connect(host='localhost', user='root',
passwd='123456', charset='utf8mb4')
cur = con.cursor()
# 开始建库
cur.execute("create database pymysql character set utf8mb4;")
# 使用库
cur.execute("use pymysql;")
# 建表
sql = "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;"
cur.execute(sql)
(3)连接数据库并对其操作
选择需要操作的数据库 pymysql
import pymysql.cursors
# Connect to the database
connection = pymysql.connect(host='localhost',
user='root',
password='123456',
port = 3306,
db='pymysql',
charset='utf8mb4',
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()
# cursor.fetchall() 当选择有多条数据时使用
print(result)
finally:
connection.close()
This example will print: {‘password’: ‘very-secret’, ‘id’: 1}
这里只实例了选取和插入操作,其他操作只需要改变操作指定就行。
其他写得很好的博客推荐:
使用pymysql操作数据库
pymysql数据库之建库建表、增删改查
Python 远程连接MySQL数据库 拉取数据存至本地文件
MySQL和SQLalchemy
Python连接MySQL 官方文档:https://dev.mysql.com/doc/connector-python/en/SQLalchemy
使用官方文档:https://docs.sqlalchemy.org/en/13/orm/tutorial.html#connecting
简单了解一下看廖学峰python教程:
(1)使用Mysql
(2)使用SQLalchemy
进一步了解python操作数据库
(1)菜鸟教程Python MySQL
(2)Python操作MySQL之SQLAlchemy