python3+flask 开发web(七)1——python通pymysql操作mysql数据库

1、mysqldb\pymysql\的区别和联系:

1)mysqldb不支持python3.x,

2)python3.x使用pymysql操作mysql数据库

2、pymysq操作数据库的步骤:(首先要先安装pymysql,直接通过pip安装就可以了)

 

说明:数据库的回滚操作是因为保证事物的原子性,让数据库的增删改保证要么都成功要么都失败。

3、直接看代码:

(1)有条件查询:

​
#coding=utf-8
import pymysql

#1、创建连接
connection=pymysql.connect(
    host='xx.xx.xx.xx',
    user='user_test',
    password='********',
    database='',
    charset='utf8'  #注意不是utf-8
)
try:
    #2、创建游标对象
    with connection.cursor() as cursor:

    # 执行sql语句:通过列表传递,第一个参数对应第二句代码中的第一个位置的值,以此类推
    # sql='select * from crf_shlife_loan.t_user where mobile_no=%s'
    # cursor.execute(sql,["13213114510"])

    
    # 执行sql语句:通过元组传递
    # sql='select name,userid from user where userid>%s '
    # cursor.execute(sql,(0,))
    


    # 3、执行sql语句:通过字典传递,参数需要名称,如下面括号中的phone是参数的名称
    sql = 'select id,user_name from crf_shlife_loan.t_user where mobile_no=%(phone)s'
    cursor.execute(sql, {'phone':'13213114510'})

    #4、提取结果集
    result_set=cursor.fetchall()   #提取全部的结果
    print(result_set)
    for row in result_set:
        print('user_name:{0},id:{1}'.format(row[1],row[0]))#这里和select语句字段顺序有关


    #5、关闭游标
        cursor.close()

finally:
    #6、关闭连接
    connection.close()

​

执行后,可以看到控制台打印出了sqlZ查询到的结果:

((1051, '测试110905'),)
user_name:测试110905,id:1051

(2)无条件查询:

#coding=utf-8
import pymysql

#1\创建连接
connection=pymysql.connect(
    host='**.***.*.***',
    user='user_test',
    password='******',
    database='',
    charset='utf8'  #注意不是utf-8
)
try:
    #2、创建游标对象
    with connection.cursor() as cursor:


    #执行sql
    sql = 'select * from crf_shlife_loan.t_user '
        cursor.execute(sql)

    #4、提取结果集
        row=cursor.fetchone()
        if row is not None:
            print("第一条数据是:{0}".format(row))


    #5、关闭游标
        cursor.close()
finally:
    #6、关闭连接
    connection.close()

执行后会把数据库中第一条数据完整的取出来;

(3)插入数据的操作

#coding=utf-8
import pymysql

#1\创建连接
connection=pymysql.connect(
    host='10.191.2.64',
    user='user_test',
    password='user_test@1201',
    database='',
    charset='utf8'  #注意不是utf-8
)
try:
    #2、创建游标对象
    with connection.cursor() as cursor:

        sql = 'insert into crf_shlife_loan.t_user(user_name,id_no) values(%s,%s)'
        afc=cursor.execute(sql,['测试','227861198805123375'])
        print(afc)  #打印一下成功插入的条数

        #提交数据库事物
        connection.commit()  #游标会自动关闭

    #捕获数据库的异常
except pymysql.DatabaseError:
        #如果出现异常就回滚
        connection.rollback()

finally:

    #6、关闭连接
        connection.close()

(4)更新:

#coding=utf-8
import pymysql

#1\创建连接
connection=pymysql.connect(
    host='**.191.**.**',
    user='user_test',
    password='*****',
    database='',
    charset='utf8'  #注意不是utf-8
)
try:
    #2、创建游标对象
    with connection.cursor() as cursor:

        sql = 'update crf_shlife_loan.t_user set user_name=%s  where mobile_no=%s'
        afc=cursor.execute(sql,['测试001','15421232641'])
        print(afc)  #打印一下成功更新成功的条数

        #提交数据库事物
        connection.commit()  #游标会自动关闭

    #捕获数据库的异常
except pymysql.DatabaseError:
        #如果出现异常就回滚
        connection.rollback()

finally:

    #6、关闭连接
        connection.close()

 

 

(5)删除:

#coding=utf-8
import pymysql

#1\创建连接
connection=pymysql.connect(
    host='10.***.**.**',
    user='user_test',
    password='*****',
    database='',
    charset='utf8'  #注意不是utf-8
)
try:
    #2、创建游标对象
    with connection.cursor() as cursor:

        sql = 'delete from  crf_shlife_loan.t_user  where mobile_no=%s'
        afc=cursor.execute(sql,('15421232641'))
        print(afc)  #打印一下成功删除成功的条数

        #提交数据库事物
        connection.commit()  #游标会自动关闭

    #捕获数据库的异常
except pymysql.DatabaseError:
        #如果出现异常就回滚
        connection.rollback()

finally:

    #6、关闭连接
        connection.close()

 

 

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值