• pymysql模块的使用


    一.基本用法:

     1 import  pymysql
     2 
     3             username = input('请输入用户名:')
     4             pwd = input('请输入密码:')
     5 
     6             # 建立连接
     7             conn = pymysql.connect(
     8                 host='localhost',
     9                 user='root',
    10                 password="",
    11                 database='db13',
    12                 port=3306,
    13                 charset='utf8'
    14             )
    15             # 创建游标
    16             cur = conn.cursor()
    17             sql = 'select * from userinfo where name="%s" and pwd="%s"'%(username,pwd)
    18             print(sql)
    19 
    20             res = cur.execute(sql)
    21             print(res)
    22 
    23             # 游标关闭 连接关闭
    24             cur.close()
    25             conn.close()
    26 
    27 
    28             if res:
    29                 print('登录成功')
    30             else :
    31                 print('登录失败')
    View Code

     增丶删丶改:conn.commit()

    conn.commit() 在数据库增,删,改的时候,必须要进行提交,否则插入数据不生效

     1 import pymysql
     2 username = input('请输入用户名:')
     3 
     4 pwd = input('请输入密码:')
     5 
     6 
     7 
     8 # 1.连接
     9 conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8')
    10 
    11 
    12 # 2.创建游标
    13 cursor = conn.cursor()
    14 
    15 
    16 # 操作
    17 #
    18 # sql = "insert into userinfo(username,pwd) values (%s,%s)"
    19 
    20 
    21 # effect_row = cursor.execute(sql,(username,pwd))
    22 #同时插入多条数据
    23 #cursor.executemany(sql,[('李四','110'),('王五','119')]) 
    24 
    25 # print(effect_row)#
    26 
    27 #
    28 # sql = "update userinfo set username = %s  where id = 2"
    29 # effect_row = cursor.execute(sql,username)
    30 # print(effect_row)
    31 
    32 
    33 #
    34 sql = "delete from userinfo  where id = 2"
    35 effect_row = cursor.execute(sql)
    36 print(effect_row)
    37 
    38 
    39 #一定记得commit
    40 conn.commit()
    41 
    42 # 4.关闭游标
    43 cursor.close()
    44 
    45 # 5.关闭连接
    46 conn.close()
    View Code

    查:

    --fetchone():获取下一行数据,第一次为首行

     1 import pymysql
     2 
     3 # 1.连接
     4 conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8')
     5 
     6 
     7 # 2.创建游标
     8 cursor = conn.cursor()
     9 
    10 sql = 'select * from userinfo'
    11 cursor.execute(sql)
    12 
    13 
    14 # 查询第一行的数据
    15 row = cursor.fetchone()
    16 print(row) # (1, 'mjj', '123')
    17 
    18 # 查询第二行数据
    19 row = cursor.fetchone()
    20 print(row) # (3, '张三', '110')
    21 
    22 # 4.关闭游标
    23 cursor.close()
    24 
    25 # 5.关闭连接
    26 conn.close()
    View Code

    --fetchall(4):获取4行数据

     1 import pymysql
     2 
     3 # 1.连接
     4 conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8')
     5 
     6 
     7 # 2.创建游标
     8 cursor = conn.cursor()
     9 
    10 sql = 'select * from userinfo'
    11 cursor.execute(sql)
    12 
    13 # 获取所有的数据
    14 rows = cursor.fetchall()
    15 print(rows)
    16 
    17 # 4.关闭游标
    18 cursor.close()
    19 
    20 # 5.关闭连接
    21 conn.close()
    22 
    23 #运行结果
    24 ((1, 'mjj', '123'), (3, '张三', '110'), (4, '李四', '119'))
    View Code

    默认情况下,我们获取到的返回值是元组,只能看到每行数据源,这个时候可以使用一下方式来返回字典,每一行的数据都会生成一个字典

    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  #在实例化的时候,将属性cursor设置为pymysql.cursors.DictCursor

    另外,还可以使用如下方式来移动行指针:

    cursor.scroll(1,mode='relative')  # 相对当前位置移动
    cursor.scroll(2,mode='absolute') # 相对绝对位置移动
    第一个值为移动的行数,整数为向下移动,负数为向上移动,mode指定了是相对当前位置移动,还是相对于首行移动
     1 # 1.Python实现用户登录
     2 # 2.Mysql保存数据
     3 
     4 import pymysql
     5 
     6 # 1.连接
     7 conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8')
     8 
     9 
    10 # 2.创建游标
    11 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    12 
    13 sql = 'select * from userinfo'
    14 cursor.execute(sql)
    15 
    16 
    17 # 查询第一行的数据
    18 row = cursor.fetchone()
    19 print(row) # (1, 'mjj', '123')
    20 
    21 # 查询第二行数据
    22 row = cursor.fetchone() # (3, '张三', '110')
    23 print(row)
    24 
    25 cursor.scroll(-1,mode='relative') #设置之后,光标相对于当前位置往前移动了一行,所以打印的结果为第二行的数据
    26 row = cursor.fetchone() 
    27 print(row)
    28 
    29 cursor.scroll(0,mode='absolute') #设置之后,光标相对于首行没有任何变化,所以打印的结果为第一行数据
    30 row = cursor.fetchone() 
    31 print(row)
    32 
    33 # 4.关闭游标
    34 cursor.close()
    35 
    36 # 5.关闭连接
    37 conn.close()
    38 
    39 #结果如下
    40 
    41 {'id': 1, 'username': 'mjj', 'pwd': '123'}
    42 {'id': 3, 'username': '张三', 'pwd': '110'}
    43 {'id': 3, 'username': '张三', 'pwd': '110'}
    44 {'id': 1, 'username': 'mjj', 'pwd': '123'}
    View Code

    --fetchmany():获取所有行数据源

     1 import pymysql
     2 
     3 # 1.连接
     4 conn = pymysql.connect(host='localhost', port=3306, user='root', password='', db='db8', charset='utf8')
     5 
     6 
     7 # 2.创建游标
     8 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
     9 
    10 sql = 'select * from userinfo'
    11 cursor.execute(sql)
    12 
    13 
    14 
    15 # 获取2条数据
    16 rows = cursor.fetchmany(2)
    17 print(rows)
    18 
    19 # 4.关闭游标
    20 
    21 # rows = cursor.fetchall()
    22 # print(rows)
    23 cursor.close()
    24 
    25 # 5.关闭连接
    26 conn.close()
    27 
    28 #结果如下:
    29 [{'id': 1, 'username': 'mjj', 'pwd': '123'}, {'id': 3, 'username': '张三', 'pwd': '110'}]
    View Code
  • 相关阅读:
    JS 表单submit() 提交无效的问题
    thinkphp中连接oracle时封装的方法无法用
    Struts2 开发流程(转)
    oracle wm_concat(column)函数的使用(转)
    js点击按钮后显示时间自动减少提示
    Windows Server 2008 R2安装过程
    Spring学习之旅(1) 第一个Controller
    Groovy系列 Groovy集合
    Groovy系列 安装Groovy
    VMWare实现共享目录
  • 原文地址:https://www.cnblogs.com/lzmdbk/p/9810948.html
Copyright © 2020-2023  润新知