前言:可参考: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')")
posted on 2020-06-23 20:11  喵小超  阅读(340)  评论(0编辑  收藏  举报