首先,下载pymysql库
pip install pymysql
py文件引用:
import pymysql
class DB:
def __init__(self):
"""连接数据库,创建游标"""
self.con = pymysql.connect(host='localhost', port=3306, user='root',
password="mysql", database='test', charset='utf8',
cursorclass=pymysql.cursors.DictCursor
)
self.cur = self.con.cursor()
def query_sql(self, sql):
"""执行查询的sql"""
self.cur.execute(sql)
return self.cur.fetchall()
def excute_sql(self, sql):
"""执行增删改的sql"""
self.cur.execute(sql)
self.con.commit()
def close(self):
"""关闭游标、断开连接"""
self.cur.close()
self.con.close()
此外,说一下这次数据库相关内容碰到的坑
在安装好mysql客户端后(mysql5.7,网上有下载教程)
首先建库:
create database testdb;
然后建表
create table books(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
position varchar(40) default '',
status enum('在库','出借') default '在库',
borrorwer varchar(20) default ''
);
这时候报了一个错误:ERROR 1067 (42000):Invalid default value for 'status'(“状态”的默认值无效)
多方查验后发现,这是由于建库的时候没有定义编码格式,数据库无法识别中文的默认内容导致的,更改数据库的编码属性即可解决这个问题;
我这里直接进行了删库操作,重新建了一个新的库,命令语句:
CREATE DATABASE IF NOT EXISTS test_db_ DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
至此,错误解决,再次执行建表语句没有再报错。