前言:可参考:https://blog.csdn.net/woiangaoiowe/article/details/105364043
一、安装pymysql
安装命令:pip install pymysql
安装成功检查: pip list 查看到pymysql模块也表示安装成功
二、连接数据库
首先,导入pymysql;其次需要使用到pymysql模块中的connect()
import pymysql #创建数据库连接对象 connect =pymysql.connect( host='127.0.0.1', port=3306, user='root', password='123456', database='easybuy', charset='utf8' )
注意:连接数据库时,传参一定要通过关键字传参!!!
三、查询数据
注意点:代码访问数据库,是采用游标形式(即一个表或一个查询结果,逐行取数据);
cur =connect.cursor() #创建游标对象 cur.execute("select * from esaybuy_user;") value =cur.fetchone() # 取某一行值 print(value)
数据表的操作:增删改查,就不再一一演示了,只要将正常的MySQL增删改查命令作为参数传给execute()函数就可以了。
需要注意的是,执行的命令如果是增删改的话,要调用commit()函数来让新数据生效,通过conn对象来调用。
cur.execute("update %s set userName=%s where loginName=%s;%('esaybuy_user','浙江','szz')") #更新语句 connect.commit() #提交执行语句 connect.close() #关闭数据库
四、读取操作
fetchone()——查询一行,fetchmany(显示行数) ——查询x行,fetchall() ——查询所有行
五、设置游标类型
默认返回的是元祖类型。若想返回字典数据,可进行如下操作:
connect =pymysql.connect( host='127.0.0.1', port=3306, user='root', password='123456', database='easybuy', charset='utf8', cursorclass =pymysql.cursors.DictCursor #将元祖类型转成字典类型,方式一 ) cur =connect.cursor(pymysql.cursors.DictCursor) #将元祖类型转成字典类型,方式二 cur.execute("select * from esaybuy_user;") value1 =cur.fetchone() # 取某一行值 value2 = cur.fetchmany(4) #取4行值 value3 = cur.fetchall() #取所有行 print(value1) print(value2) print(value3)
上面我们说了查询结果集默认是元组,可以自定义设置返回类型。支持5中游标类型:
Cursor——默认,元组类型
DictCursor——字典类型
DictCursorMixin——支持自定义的游标类型,需先自定义才可以使用
SSCursor——无缓冲元组类型
SSDictCursor——无缓冲字典类型
六、防止SQL注入
参数化语句:在执行sql语句时,不要直接将数据写入sql语句,而是通过格式化操作符将需要写入的数据进行参数化拼接,以避免SQL注入
cur.execute("update %s set userName=%s where loginName=%s;%('esaybuy_user','浙江','szz')")