• pymysql模块的简单操作


    pymysql 模块!

    pymysql模块时一个第三方模块!需要下载:

    pymysql的基本使用:

    import pymysql
    
    conn = pymysql.connect(
        user = 'root',
        password = '123',
        host = '127.0.0.1', # ip地址
        port = 3306,        # 端口
        charset = 'utf8',
        database = 'day36_1'
    )
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 产生游标对象
    # cursor=pymysql.cursors.DictCursor 将查询出来的结果制成字典的形式返回
    sql = "select * from userinto"
    res = cursor.execute(sql)  #执行sql语句
    
    res = cursor.fetchone()  # 打印一条数据
    res = cursor.fetchall() # 可以打印里面的所有数据
    res = cursor.fetchmany(2)   #制定获取几条数据,如果数字超了也不报错
    
    print(res)
    
    cursor.scroll(2, 'relative')  #相对移动 , 基于指针所在位置, 往后偏移
    
    cursor.scroll(3, 'absolute') #绝对移动,基于起始位置往后偏移
    
    print(cursor.fetchall())
    

    我们可以通过python导入模块来连接数据库,进行登陆注册功能,在使用时sql会遇到注入问题

    sql注入问题 利用特殊符号和注释语法 巧妙的绕过真正的sql校验,是用户数据不安全
    关键性的数据 不要自己手动去拼接 而是交由execute帮你去做拼接
    import pymysql
    
    conn = pymysql.connect(
        user = 'root' ,
        password = '123',
        host = '127.0.0.1',
        port = 3306,
        database = 'day36_1',
        charset = 'utf8'
    )
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    #获取用户名和密码,然后取数据库中校验
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    sql = "select * from userinto where name=%s and password=%s"
    print(sql)
    cursor.execute(sql, (username, password))  #交由execute帮你去做拼接,解决注入问题
    res = cursor.fetchall()
    
    if res:
        print(res)
    else:
        print('username or password error!')
    

    我们也可以利用pycharm来操作数据库文件的增删改查!

    针对增 删 改操作 执行重要程度偏高
    你如果真想操作 必须有一步确认操作(commit)
    import pymysql
    conn = pymysql.connect(
        user = 'root',
        passwd = '123456',
        db = 'day36',
        host = '127.0.0.1',
        port = 3306,
        charset = 'utf8',
        autocommit = True  # 自动提交确认
    )
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    # #查: 获取用户输入的用户名和密码 然后取数据库中校验
    # username = input('username>>>:').strip()
    # password = input('password>>>:').strip()
    # # sql = "select * from userinfo where name='%s' and password= '%s'"%(username,password)
    # sql = "select * from userinfo where name=%s and password= %s"
    # print(sql)
    
    # 增
    sql = "insert into userinfo(name,password,dep_id) values('jason',789,1)"
    # 改
    # sql = "update userinfo set name='egondsb' where id = 6"
    # 删除
    # sql = "delete from userinfo where id= 1"
    res = cursor.execute(sql)
    # conn.commit()  # 确认当前操作  真正的同步到数据库
    print(res)
    
    
  • 相关阅读:
    C#多线程之基础篇3
    C#多线程之基础篇2
    C#多线程之基础篇1
    Log4net入门(帮助类篇)
    Log4net入门(WCF篇)
    Log4net入门(ASP.NET MVC 5篇)
    Log4net入门(SQL篇)
    深入理解java:4.3. 框架编程之MyBatis原理深入解析
    深入理解java:4.2. 框架编程之Spring框架的设计理念
    深入理解java:4.1. 框架编程之Spring MVC
  • 原文地址:https://www.cnblogs.com/lishuangjian/p/12052058.html
Copyright © 2020-2023  润新知