【Python 程序設(shè)計】-簡單系統(tǒng)登錄頁面設(shè)計
1、需求分析
系統(tǒng)要有管理員登錄、普通用戶登錄和退出三個選項可供選擇
系統(tǒng)要能夠?qū)崿F(xiàn)登入出錯提示,比如賬戶密碼錯誤等,用戶信息保存在user目錄下的文件夾中,存儲在user.csv中
系統(tǒng)要能夠進(jìn)行歡迎界面顯示,登錄成功后顯示該頁面。
系統(tǒng)要能夠有寫入信息功能,當(dāng)用戶或管理員的文件為空時,則向里面寫入信息。
注冊界面要能夠進(jìn)行用戶名重復(fù)提示,當(dāng)用戶注冊賬戶已存在時,進(jìn)行相應(yīng)信息的提示。
2、總體設(shè)計
綜合運(yùn)用Python編程基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計,python文件處理、tkinter模塊設(shè)計等知識要點(diǎn)
流程圖:登錄系統(tǒng)流程圖
3、詳細(xì)設(shè)計
(1)系統(tǒng)具備初始化功能,初始化包含寫入管理員用戶信息,創(chuàng)建普通用戶目錄,創(chuàng)建日志目錄。
class UserDefinedException(Exception):
def __init__(self,eid,message,lineNo):
#異常描述
# 初始化管理員
def init():
(2)圖形界面要求美觀大方,具備系統(tǒng)名稱顯示、用戶類型選擇、用戶名及密碼輸入、登錄及退出按鈕、歡迎界面等功能。
# 歡迎界面設(shè)計
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)
#設(shè)置標(biāo)簽的邊框
# 按鈕設(shè)計
bt_logquit = tk.Button(window, text='退出系統(tǒng)', 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文件,包含用戶名、用戶類型、登錄時間、登錄成功/失敗標(biāo)志、備注信息等,以追加寫的方式,分別寫入管理員登錄,普通用戶登錄和注冊的信息。
# 儲存用戶登錄成功信息
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)程序源代碼要求關(guān)鍵代碼有行注釋,函數(shù)有IPO注釋,類和對象有屬性注釋、方法注釋。
#管理員登錄
def admin_log_in():
#管理員登錄驗證
def admin_loggin():
#普通用戶登錄
def usr_log_in():
#普通用戶登錄驗證
def user_loggin():
#注冊函數(shù)
def usr_sign_up():
#確認(rèn)注冊時的相應(yīng)函數(shù)
def sign_up():
#退出的函數(shù)
def usr_sign_quit():
(5)源代碼中函數(shù)建議全部做異常處理,異常信息寫日志文件或csv文件,文件以日期命名,異常信息包含:異常發(fā)生時間、異常代碼、異常描述、異常位置等。將日志文件以當(dāng)前時間命名并放入mylog的目錄中。
# 異常信息寫日志
except FileNotFoundError as e:
filename = "./users/" + usr_name
with 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_log
file_log_name = "./mylogs/" + file
file = 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、程序運(yùn)行結(jié)果測試與分析
-
主窗體設(shè)計:
-
歡迎界面設(shè)計
-
管理員登錄界面
用戶名與密碼正確:
用戶名或密碼錯誤: -
普通用戶登錄:
用戶名或密碼錯誤:
注冊成功頁面:
用戶名與密碼正確: -
寫CSV文件
-
異常信息寫日志文件
5、完整源代碼
源代碼.zip
https://download.csdn.net/download/paney_li/87268573文章來源:http://www.zghlxwxcb.cn/news/detail-494066.html
希望可以幫到你哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-494066.html
到了這里,關(guān)于Python 程序設(shè)計-系統(tǒng)登錄頁面設(shè)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!