当前位置: 首页 > wzjs >正文

制作公司网站设计要求设计网名大全

制作公司网站设计要求,设计网名大全,母婴用品购物网站制作,响应式的学校网站文章目录 前言一、代码二、代码解释2.1用户数据库定义2.2窗口初始化2.3认证逻辑2.5角色处理2.6错误处理优化2.7功能扩展说明2.7.1用户类型区分管理员普通用户其他用户 2.7.2安全增强建议 三、运行效果四、运行命令五、界面改进建议5.1密码显示5.2用户头像显示5.3输入框动画效果…

文章目录

  • 前言
  • 一、代码
  • 二、代码解释
    • 2.1用户数据库定义
    • 2.2窗口初始化
    • 2.3认证逻辑
    • 2.5角色处理
    • 2.6错误处理优化
    • 2.7功能扩展说明
      • 2.7.1用户类型区分
        • 管理员
        • 普通用户
        • 其他用户
      • 2.7.2安全增强建议
  • 三、运行效果
  • 四、运行命令
  • 五、界面改进建议
    • 5.1密码显示
    • 5.2用户头像显示
    • 5.3输入框动画效果
    • 5.4加载进度显示
    • 5.5键盘快捷键


前言

本文简单介绍了在Ubuntu系统上使用Python的Pyqt创建密码登录系统(多用户)。


一、代码

import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QLineEdit,QPushButton, QVBoxLayout, QHBoxLayout, QMessageBox)
from PyQt5.QtCore import Qt#用户数据库(实际应使用加密存储)
USER_DB = {"admin": {"password": "admin123","role": "administrator"},"user1": {"password": "user123","role": "regular"},"guest": {"password": "guest123","role": "regular"}
}class LoginWindow(QWidget):def __init__(self):super().__init__()# 窗口初始化self.setWindowTitle("多用户登录系统")self.setFixedSize(400, 200)  # 固定窗口大小# 创建界面组件self.init_ui()def init_ui(self):"""界面布局初始化"""# 用户名组件lbl_user = QLabel("用户名:")self.txt_user = QLineEdit()self.txt_user.setPlaceholderText("输入用户名")# 密码组件lbl_pwd = QLabel("密码:")self.txt_pwd = QLineEdit()self.txt_pwd.setPlaceholderText("输入密码")self.txt_pwd.setEchoMode(QLineEdit.Password)# 登录按钮btn_login = QPushButton("登录")btn_login.clicked.connect(self.authenticate)# 错误提示self.lbl_error = QLabel()self.lbl_error.setStyleSheet("color: red;")self.lbl_error.hide()# 布局管理main_layout = QVBoxLayout()# 用户名行user_layout = QHBoxLayout()user_layout.addWidget(lbl_user)user_layout.addWidget(self.txt_user)# 密码行pwd_layout = QHBoxLayout()pwd_layout.addWidget(lbl_pwd)pwd_layout.addWidget(self.txt_pwd)# 组合所有组件main_layout.addLayout(user_layout)main_layout.addLayout(pwd_layout)main_layout.addWidget(self.lbl_error)main_layout.addWidget(btn_login, alignment=Qt.AlignCenter)self.setLayout(main_layout)def authenticate(self):"""用户认证逻辑"""username = self.txt_user.text().strip()password = self.txt_pwd.text().strip()# 检查用户名是否存在if username not in USER_DB:self.show_error("用户不存在")return# 验证密码if USER_DB[username]["password"] != password:self.show_error("密码错误")return# 登录成功处理role = USER_DB[username]["role"]self.handle_login_success(username, role)def show_error(self, message):"""显示错误信息"""self.lbl_error.setText(message)self.lbl_error.show()self.txt_pwd.clear()def handle_login_success(self, username, role):"""登录成功处理"""self.lbl_error.hide()# 根据用户角色显示不同欢迎信息if role == "administrator":welcome_msg = f"欢迎管理员 {username}!您有系统管理权限"else:welcome_msg = f"欢迎用户 {username}!普通用户模式"QMessageBox.information(self, "登录成功", welcome_msg)self.close()# 这里可以打开不同角色的主界面# if role == "administrator":#     open_admin_panel()# else:#     open_user_panel()if __name__ == "__main__":app = QApplication(sys.argv)window = LoginWindow()window.show()sys.exit(app.exec_())

二、代码解释

2.1用户数据库定义

USER_DB = {"admin": {"password": "admin123","role": "administrator"},# ...其他用户
}
  1. 使用字典模拟用户数据库
  2. 每个用户包含密码和角色属性
  3. 实际应用应使用数据库存储并加密密码

2.2窗口初始化

self.setFixedSize(400, 200)  # 禁止调整窗口大小
  1. 使用固定尺寸保证界面布局稳定性

2.3认证逻辑

def authenticate(self):# 先检查用户是否存在if username not in USER_DB:self.show_error("用户不存在")return# 再验证密码if USER_DB[username]["password"] != password:self.show_error("密码错误")return
  1. 分步验证:先验证用户存在性,再验证密码
  2. 不同错误类型给出不同提示,提升用户体验

2.5角色处理

def handle_login_success(self, username, role):if role == "administrator":welcome_msg = f"欢迎管理员 {username}!您有系统管理权限"else:welcome_msg = f"欢迎用户 {username}!普通用户模式"
  1. 根据用户角色显示不同欢迎信息
  2. 实际应用中可在此处打开不同权限的主界面

2.6错误处理优化

def show_error(self, message):self.lbl_error.setText(message)self.lbl_error.show()self.txt_pwd.clear()  # 自动清空密码框
  1. 统一错误处理函数
  2. 清空密码框保证安全性

2.7功能扩展说明

2.7.1用户类型区分

管理员

管理员(administrator):具有系统管理权限

普通用户

普通用户(regular):基础使用权限

其他用户

可通过添加更多角色类型扩展

2.7.2安全增强建议

#密码加密示例(需安装pycryptodome)
from Crypto.Hash import SHA256def encrypt(password):return SHA256.new(password.encode()).hexdigest()#存储时保存加密后的密码
USER_DB = {"admin": {"password": encrypt("admin123"),"role": "administrator"}
}
  1. 实际应用必须使用密码哈希存储
  2. 推荐使用bcryptArgon2等专业加密算法

三、运行效果

  1. 当输入不存在的用户名时显示"用户不存在"
  2. 输入错误密码显示"密码错误"
  3. 管理员登录成功显示管理权限提示
  4. 普通用户登录显示普通模式提示
  5. 密码框自动隐藏输入内容

四、运行命令

#确保已安装PyQt5
sudo apt-get install python3-pyqt5
#运行程序
python3 multi_user_login.py

五、界面改进建议

5.1密码显示

添加密码显示/隐藏切换按钮

5.2用户头像显示

增加用户头像显示

5.3输入框动画效果

实现输入框动画效果

5.4加载进度显示

添加加载进度提示

5.5键盘快捷键

支持键盘快捷键操作(如Enter键登录)



文章转载自:

http://t5ZKvfuI.mfsxd.cn
http://zI10gfoT.mfsxd.cn
http://6w9WcQAo.mfsxd.cn
http://dsRQChIN.mfsxd.cn
http://YhgabCVj.mfsxd.cn
http://B2zySNzY.mfsxd.cn
http://hblf6QMa.mfsxd.cn
http://zmBHlxYL.mfsxd.cn
http://i405CvGv.mfsxd.cn
http://5ah95hJt.mfsxd.cn
http://u6Q734lE.mfsxd.cn
http://k2thb8QA.mfsxd.cn
http://8CzJtjAA.mfsxd.cn
http://VHOlw37w.mfsxd.cn
http://9SNT757B.mfsxd.cn
http://tmQzDpWE.mfsxd.cn
http://WPpxtDRZ.mfsxd.cn
http://UWCZsRKT.mfsxd.cn
http://v2kO5HFp.mfsxd.cn
http://uXJBLiHE.mfsxd.cn
http://jGSTZEKN.mfsxd.cn
http://RJJFTlcM.mfsxd.cn
http://38RyBjpq.mfsxd.cn
http://7QSqN2Y7.mfsxd.cn
http://hG7oCklr.mfsxd.cn
http://DXl9MJuB.mfsxd.cn
http://87QXSysX.mfsxd.cn
http://XE0hA9kX.mfsxd.cn
http://rQY4XVLO.mfsxd.cn
http://NJi65Nl9.mfsxd.cn
http://www.dtcms.com/wzjs/667003.html

相关文章:

  • 西安 网站设计网站解析域名时间
  • 电脑怎样做网站淘宝客网站 建设要钱不
  • sqlite 做网站数据库爱站权重是怎么计算的
  • 文字游戏做的最好的网站网站常见程序问题
  • 微信小程序app下载WordPress seo终极优化
  • 网站首页设计及运行效果搭建商城哪家好点
  • 浙江省城乡建设厅网站wordpress 图片编辑
  • 网站建设费用做做什么科目西安做网站优化的公司
  • 网站建设网络推广seo网页设计图片与文字的研究
  • 专做废旧电子电路板配件回收的网站在线设计网站可以做ps和ppt
  • 站长全网指数查询网络规划设计师证书有什么用
  • 哪有做建筑设计的网站Ie8网站后台编辑文章
  • 怎样做自己的微商网站6wordpress自定义背景颜色
  • 树莓派做影视网站网站防护找谁做
  • 长春网站seo公司wordpress 分类 404
  • asp.net网站开发实战免费订单管理app
  • 天津定制网站建设公司酒店行业网站建设方案
  • 台州免费自助建站模板国科联创网站建设
  • 类型: 营销型网站建设装修网站设计师
  • 如何设计网站栏目公司网站建设需求表
  • 一般网站维护费用做网站营业执照经营范围怎么填写
  • 优秀网站网址营销渠道策略
  • 关键词排名点击软件网站学校网站设计的作用
  • 出词网站seo如何做
  • 做网站需不需要云数据库wordpress qux
  • 动态发布网站和静态发布网站网站首页框架图
  • 网站开发和网站运营的区别注册公司代理记账
  • 山西本土网站建设佛山推广seo排名
  • 做暧视频免费网站文字图片生成器在线
  • 泉州网站设计招聘网织梦软件网站模板下载