pymysql

这篇博客介绍了Python与MySQL数据库交互的两种常用库——pymysql和mysqlclient。内容包括驱动介绍、pymysql的安装、创建数据库和表、连接与游标操作、新增记录、事务管理、SQL注入及其防护、参数化查询的优势以及上下文管理。同时对比了pymysql的上下文管理与mysqlclient的区别。
摘要由CSDN通过智能技术生成

数据库开发

驱动

与MySQL通信就是典型的CS模式。Server就是服务器端,使用客户端先建立连接,数据库编程时,这个客户端变成了程序。

MySQL基于TCP协议之上开发,传输的数据必须遵循MySQL的协议。
由于协议多且复杂,就被封装为MySQL协议的包,习惯上称为驱动程序。

MySQL的驱动

  • MySQLdb
    最有名的库。对MySQL的C Client封装实现,支持Python 2,现在不更新了,且不支持Python3
  • mysqlclient
    在MySQLdb的基础上, 增加了对Python 3的支持
  • MySQL官方Connector
    Mysql官网 htts://dev.mysgl.com/downloads/connector/
  • pymysql
    语法兼容MySQLdb,使用纯Python写的MySQL客户端库,支持Python 3
    CPython 2.7、3.4+
    MySQL 5.5+、MariaDB 5.5+

pymysql使用

安装

pip install pymysql
pip install simplejson

simplejson库处理json文件方便。

创建数据库和表

CREATE DATABASE IF NOT EXISTS school;
SHOW DATABASES;
USE school;

CREATE TABLE `student`(
	`id` int(11) NOT NULL AUTO_INCREMENT,
	`name` varchar(30) NOT NULL,
	`age` int(11) DEFAULT NULL,
	PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFALUT CHARSET=utf8;

连接Connect

pymysql.connect()方法返回的是connections模块下的Connection类实例。connect方法传参就是给Connection类的init方法提供参数

connection初始化常用参数 说明
host 主机
user 用户名
password 密码
database 数据库
port 端口

Connection.ping()方法,测试数据库是否活着。有一个参数reconnect表示断开与服务器连接是否重新连接,连接关闭抛出异常。

conn.json文件

{
   
    "host":"192.168.10.100",
    "user":"qy",
    "password":"*963.",
    "database":"test",
    "port":3306
}
import pymysql
import simplejson

with open('conn.json') as f:
	cfg = simplejson.load(f)
    
conn = None
try:
	conn = pymysql.connect(**cfg)#执行到该句时会连接数据库,配置不能出错。
	print(type(conn),conn)
    conn.ping(False)#ping不通抛异常,True重连
finally:
    if conn:
        conn.close()

游标Cursor

操作数据库,必须使用游标,需要先获取一个游标对象。
Connection.cursor(cursor=None)方法返回一个新的游标对象。
连接没有关闭前,游标对象可以反复使用。

cursor参数,可以指定一个Cursor类。 如果为None,则使用默认Cursor类。

Cursor类的实例,使用execute() 方法,执行SQL语句ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值