Python 程序设计-系统登录页面设计

目录

  • Python 程序设计-系统登录页面设计
    • 1、需求分析
    • 2、总体设计
    • 3、详细设计
    • 4、程序运行结果测试与分析
    • 5、完整源代码

1、需求分析

系统要有管理员登录、普通用户登录和退出三个选项可供选择
系统要能够实现登入出错提示,比如账户密码错误等,用户信息保存在user目录下的文件夹中,存储在user.csv中
系统要能够进行欢迎界面显示,登录成功后显示该页面。
系统要能够有写入信息功能,当用户或管理员的文件为空时,则向里面写入信息。
注册界面要能够进行用户名重复提示,当用户注册账户已存在时,进行相应信息的提示。

2、总体设计

综合运用Python编程基础、面向对象程序设计,python文件处理、tkinter模块设计等知识要点
流程图:登录系统流程图

3、详细设计

(1)系统具备初始化功能,初始化包含写入管理员用户信息,创建普通用户目录,创建日志目录。

class UserDefinedException(Exception):def __init__(self,eid,message,lineNo):#异常描述# 初始化管理员def init():

(2)图形界面要求美观大方,具备系统名称显示、用户类型选择、用户名及密码输入、登录及退出按钮、欢迎界面等功能。

# 欢迎界面设计def welcome():winlabel = tk.Label(window,text='请选择用户类型:', fg='black',bg='pink',font=("微软雅黑", 15,'bold'))winlabel.place(x=100, y=110)winlabel.configure(width=20,height=4) #设置标签的边框 # 按钮设计 bt_logquit = tk.Button(window, text='退出系统', bg='pink',command=usr_sign_quit) bt_logquit.place(x=200, y=230) bt_admin_login = tk.Button(window, text='管理员登录', bg='pink',command=admin_log_in) bt_admin_login.place(x=110, y=180) bt_user_login = tk.Button(window, text='普通用户登录',bg='pink', command=usr_log_in) bt_user_login.place(x=270, y=180)

(3)用户登录信息存储CSV文件,包含用户名、用户类型、登录时间、登录成功/失败标志、备注信息等,以追加写的方式,分别写入管理员登录,普通用户登录和注册的信息。

# 储存用户登录成功信息def user_csv():row = [{'用户姓名': user_name.get(), '用户密码': user_pwd.get()}] time1 = [str("\n"+"用户登录时间:" + str(datetime.now()) + "=====")] is_welcome = [str("登录成功!")] with open('test2.csv', 'a', newline='')as f:

(4)程序源代码要求关键代码有行注释,函数有IPO注释,类和对象有属性注释、方法注释。

#管理员登录
def admin_log_in():
#管理员登录验证
def admin_loggin():
#普通用户登录
def usr_log_in():
#普通用户登录验证
def user_loggin():
#注册函数
def usr_sign_up():
#确认注册时的相应函数
def sign_up():
#退出的函数
def usr_sign_quit():

(5)源代码中函数建议全部做异常处理,异常信息写日志文件或csv文件,文件以日期命名,异常信息包含:异常发生时间、异常代码、异常描述、异常位置等。将日志文件以当前时间命名并放入mylog的目录中。

# 异常信息写日志 except FileNotFoundError as e:filename = "./users/" + usr_namewith open(filename, 'wb') as usr_file:usrs_info = {'u_pwd': user_pwd.get(), 'u_name': user_name.get()}pickle.dump(usrs_info, usr_file)usr_file.close()file_log = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime())file = '%s.txt' % file_logfile_log_name = "./mylogs/" + filefile = open(file_log_name,'a+')file.write(str(datetime.now().strftime('%Y%m%d')))file.flush()file.write("\n====="+str(datetime.now())+"=====\n")file.close()

4、程序运行结果测试与分析

  • 主窗体设计:

  • 欢迎界面设计

  • 管理员登录界面

    用户名与密码正确:

    用户名或密码错误:

  • 普通用户登录:

    用户名或密码错误:


    注册成功页面:

    用户名与密码正确:

  • 写CSV文件

  • 异常信息写日志文件

5、完整源代码

源代码.zip
https://download.csdn.net/download/paney_li/87268573

希望可以帮到你哦!