温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

pymysql实现用户登录验证的代码怎么写

发布时间:2022-01-21 09:19:47 来源:亿速云 阅读:180 作者:iii 栏目:开发技术

这篇文章主要介绍了pymysql实现用户登录验证的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇pymysql实现用户登录验证的代码怎么写文章都会有所收获,下面我们一起来看看吧。

思考过程

在此之前,我一直纠结一个问题。用户名是唯一的,而密码却是重复的,一条SQL语句,如何在fetchonefetchall之间进行抉择。于是,脑子就剪不断,理还乱了,整个都缠绕在一起。在冷静思考之后,发现了问题,为什么程序中SQL语句只能是一条?两个内容不能拆分开吗?

于是,灵光一现。首先使用一条SQL语句,搜索数据表中username字段是,因为用户名是唯一的,搜索的结果集用fetchone。判断结果集是否为空,不为空就就可以判断密码是否一致,一致就成功登录,不一致就是密码错误。如果结果集为空,则进行下一条SQL语句的执行。

这一条SQL语句搜索数据表中password字段和密码一样的全部信息,这时候使用fetchall获取所有内容,返回结果是一个列表。如果列表为空,就是用户名和密码都不正确;如果列表不为空,那么就是用户名输入错误了。

进行一番测试验证后,效果还不错!下面是具体的代码内容。

具体代码

import pymysql# 创建数据库连接conn = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='db_game')# 获取用户输入的用户名和密码username = input("请输入用户名:")
password = input("请输入密码:")# 创建游标cursor = conn.cursor(pymysql.cursors.DictCursor)# 查询数据库中与用户输入的用户名相同的信息sql = '''SELECT * FROM tbl_user WHERE username=%s'''# 执行sql语言cursor.execute(sql,username)# 因为用户名是唯一的,所以使用fetchone获取a = cursor.fetchone()# 如果获取的结果集为空if a is None:## 查询数据库中所有和用户输入的密码相同的全部信息sql = '''SELECT * FROM tbl_user WHERE password=%s'''cursor.execute(sql, [password])## 密码是可重复的,所以使用了fetchalll = cursor.fetchall()## 判断如果获取的结果集列表是空列表,则表示没有这个用户。if l == []:
        print("用户名和密码输入错误!")## 否则就是用户名输错了。else:
        print("用户名输入错误!")# 获取的结果集不为空else:## 判断结果集中password字段的值是否与输入的密码相同。如果一致,成功登录if a['password'] == password:
        print('成功登录!')## 否则就是密码输入错误else:
        print('密码输入错误!')
cursor.close()
conn.close()

关于“pymysql实现用户登录验证的代码怎么写”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“pymysql实现用户登录验证的代码怎么写”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI