网站的术语,宝安网站制作,个人网站制作成品图片,wordpress主题 标签文章目录数据库账户注册账号登录找回密码为了实现用户登录界面的登录功能#xff0c;我们必须建立一个数据库#xff0c;并把账号和对应的密码#xff0c;存储到数据库中。如果输入的账号和密码与数据库中的一致#xff0c;那我们就允许用户登录#xff0c;进入新的界面。…
文章目录数据库账户注册账号登录找回密码为了实现用户登录界面的登录功能我们必须建立一个数据库并把账号和对应的密码存储到数据库中。如果输入的账号和密码与数据库中的一致那我们就允许用户登录进入新的界面。
上篇文章介绍了如何使用PyQt5制作用户登录界面这篇文章在此基础上展开建立简单数据库实现账号登录、账户注册以及找回密码的功能。
数据库
数据库是一个按数据结构来存储和管理数据的计算机软件系统。在 python 语言中常用的数据库有两种
一种是 pymysql就是使用 python 连接 Mysql 数据库另一种是 python 语言自带的数据库 SQLite3无需安装直接使用方便快捷
我们这里使用 SQLite3首先建立数据库user并加入字段 user_id 与 password代码如下。这样就建立好基础数据库了
import sqlite3# 连接到SQLite数据库建立数据库文件mrsoft.db,如果文件不存在自动建立。
conn sqlite3.connect(mrsoft.db)
# 创建一个cursor游标
cursor conn.cursor()# 执行一条SQL语句创建user包括账号user_id与密码password
cursor.execute(create table user (user_id varchar(30) primary key, password varchar)# 关闭游标
cursor.close()# 提交事务
conn.commit()
# 关闭connection
conn.close()账户注册
账号注册首先要读取 lineEdit 中输入的字符串如果输入的账号在数据库中已存在或者两次输入的密码不一致再或者输入为空则提示注册失败否则就可以成功注册。 连接数据库获取输入的账号和两次密码判断两次输入密码是否一致判断账号是否已被注册账号注册成功
import sqlite3conn sqlite3.connect(./database/mrsoft.db)
cursor conn.cursor()
user_id self.lineEdit.text() # 获取账号
password self.lineEdit_2.text() # 获取密码
confirm self.lineEdit_3.text() # 确认密码# 如果两次输入密码一致都不为空
if password confirm and password and user_id:if self.id_exist(user_id):QMessageBox.information(self, 提示, 该用户名已存在,QMessageBox.Ok)else:# sql语句符合条件的给数据库中加入新的账号和密码sql insert into user (user_id, password, authority) values (?, ?, 普通用户)cursor.execute(sql, (user_id, password))QMessageBox.information(self, 提示, 注册成功,QMessageBox.Ok)
# 如果两次输入密码不一致发出提示
elif password ! confirm:QMessageBox.information(self, 提示, 两次输入的密码不一致请重新输入,QMessageBox.Ok)
# 其他情况报错
else:QMessageBox.information(self, 提示, 输入错误,QMessageBox.Ok)
conn.commit()
cursor.close()
conn.close()# 检验注册的账户是否存在
def id_exist(self, user_id):conn sqlite3.connect(./database/mrsoft.db)cursor conn.cursor()user_id self.lineEdit.text() # 获取账号# 从数据库中查找是否有输入的账号sql select user_id from user where user_id?cursor.execute(sql, (user_id,))# 获取符合条件的所有信息data cursor.fetchall()cursor.close()conn.close()# 若数据存在表示已有该账号存于数据库中if data:return Trueelse:return False账号登录
获取输入账号密码与数据库中的账号密码比对如果一致则进入新的页面。
import sqlite3# 连接数据库
conn sqlite3.connect(./database/mrsoft.db)
cursor conn.cursor()
user_id self.lineEdit.text() # 获取账号
password self.lineEdit_2.text() # 获取密码
# sql语句判断数据库中是否拥有这账号和密码
sql select user_id, password, authority from user where user_id? and password? and authority?
cursor.execute(sql, (user_id, password, self.authority))
# 获取一致的部分存在表示输入正确不存在提示错误
data cursor.fetchall()
# 账号和密码不为空时候才进入
if user_id or password:if data:self.core_page.show()else:QMessageBox.information(None, 提示, 您的登录账号/密码错误,QMessageBox.Ok)
cursor.close()
conn.close()找回密码
获取输入的账号和密码如果账户不存在提示用户名不存在。如果两次输入的密码一样且不为空并且账户名存在则执行密码重置功能。 import sqlite3conn sqlite3.connect(./database/mrsoft.db)
cursor conn.cursor()
user_id self.lineEdit.text() # 获取账号
password self.lineEdit_2.text() # 获取密码
confirm self.lineEdit_3.text() # 确认密码
if password confirm and password and user_id:# 判断账号是否存在如存在则更改密码否则报错if self.id_exist():sql update user set password? where user_id?cursor.execute(sql, (password, user_id))QMessageBox.information(self, 提示, 密码已更改,QMessageBox.Ok)else:QMessageBox.information(self, 提示, 该用户名不存在,QMessageBox.Ok)
elif password ! confirm:QMessageBox.information(self, 提示, 两次输入的密码不一致请重新输入,QMessageBox.Ok)
else:QMessageBox.information(self, 提示, 输入错误,QMessageBox.Ok)
conn.commit()
cursor.close()
conn.close()# 检验注册的账户是否存在
def id_exist(self, user_id):conn sqlite3.connect(./database/mrsoft.db)cursor conn.cursor()user_id self.lineEdit.text() # 获取账号# 从数据库中查找是否有输入的账号sql select user_id from user where user_id?cursor.execute(sql, (user_id,))# 获取符合条件的所有信息data cursor.fetchall()cursor.close()conn.close()# 若数据存在表示已有该账号存于数据库中if data:return Trueelse:return False日常学习记录一起交流讨论吧侵权联系~