使用pyqt5+sqlite3+hashlib模块实现带数据库的加密登陆界面,并使逻辑和界面分离。
数据库生成
生成一个sqlite数据库,这里使用sqlite的原因是简单、无需部署,大家可以根据自己的情况酌情替换数据库和相应的模块
生成代码如下:
import sqlite3
conn = sqlite3.connect("user.db") # 在此文件所在的文件夹打开或创建数据库文件
c = conn.cursor() # 设置游标
# 创建一个含有id,name,password字段的表
c.execute('''CREATE TABLE user
(id INTEGER PRIMARY KEY AUTOINCREMENT ,
name TEXT NOT NULL ,
password TEXT NOT NULL )''')
conn.commit() # python连接数据库默认开启事务,所以需先提交
conn.close() # 关闭连接
界面代码编写
先编写界面代码:
- 文件命名:login_ui.py
from PyQt5 import QtWidgets
import sys
class LoginUi(QtWidgets.QDialog):
def __init__(self):
super(LoginUi, self).__init__()
self.label_user = QtWidgets.QLabel()
self.label_password = QtWidgets.QLabel()
self.lineEdit_user = QtWidgets.QLineEdit()
self