之前学习过的用户登录验证,全都是在程序中完成的,并没有和数据库发生任何的接触。最近在学习数据库sql语言,突发奇想结合数据库完成用户登录验证。具体实现思路和过程如下:
1、首先在数据库中创建一张用户相关信息的表,主要的是用户名和密码。这里面 id 是主键,用户名是唯一的。
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、总结
上述内容就是关于我对于和数据库结合的用户登录验证的简单实现。但此中亦有不完美之处,就是缺少了一部分:如果密码正确,用户名不正确,提示用户名错误的内容。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。