使用Pymysql进行用户登录验证

之前学习过的用户登录验证,全都是在程序中完成的,并没有和数据库发生任何的接触。最近在学习数据库sql语言,突发奇想结合数据库完成用户登录验证。具体实现思路和过程如下:

1、首先在数据库中创建一张用户相关信息的表,主要的是用户名和密码。这里面 id 是主键,用户名是唯一的。
使用Pymysql进行用户登录验证_第1张图片

2、导入pymysql库,并创建数据库连接和游标。

import pymysql
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    database='db_game'
)
cursor = conn.cursor(pymysql.cursors.DictCursor)

3、编写sql。由于这里用户名是唯一的,所以我只需要检索用户名相应的那一条信息,然后将密码进行对比,一样就可以成功登陆了。

sql = '''
    SELECT * FROM tbl_user WHERE username=%s
'''

4、获取用户输入的用户名和密码。

username = input('请输入用户名:')
password = input('请输入密码:')

5、执行sql语句,获取数据库表中的信息。由于用户名唯一,所以一定只有一条信息,因此使用了fetchone()获取信息。

cursor.execute(sql, username)
a = cursor.fetchone()

6、做判断。如果返回的结果集为空,说明输入的用户名不存在于数据表中。如果存在,进行对比密码,对比不成功就是密码错误;对比成功,就可以成功登录。

if a is None:
    print("用户不存在!")
elif a['password'] != password:
    print("密码错误!")
else:
    print("成功登录!")

7、最后不要忘记了关闭游标和数据库。

cursor.close()
conn.close()

8、运行结果

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

9、总结

上述内容就是关于我对于和数据库结合的用户登录验证的简单实现。但此中亦有不完美之处,就是缺少了一部分:如果密码正确,用户名不正确,提示用户名错误的内容。

作为一位只会简单的数据库增删改查的萌新,关于sql语言的一些用法还不是很明白。如果大家伙儿有好的建议,还望多多指正!

小的给各位大哥献上小馒头了!
使用Pymysql进行用户登录验证_第2张图片

你可能感兴趣的:(Python,数据库,database,python)