中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用python實現登錄與注冊功能

發布時間:2022-01-17 08:55:41 來源:億速云 閱讀:159 作者:iii 欄目:開發技術

本篇內容主要講解“怎么用python實現登錄與注冊功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用python實現登錄與注冊功能”吧!

1. 案例介紹

本例設計一個用戶登錄和注冊模塊,使用 Tkinter 框架構建界面,主要用到畫布、文本框、按鈕等組件。涉及知識點:Python Tkinter 界面編程、pickle 數據存儲。本例實現了基本的用戶登錄和注冊互動界面,并提供用戶信息存儲和驗證。pickle 是 python 語言的一個標準模塊,安裝 python 后已包含 pickle 庫,不需要單獨再安裝。pickle 模塊實現了基本的數據序列化和反序列化。通過 pickle 模塊的序列化操作能夠將程序中運行的對象信息保存到文件中去,永久存儲;通過 pickle 模塊的反序列化操作,能夠從文件中創建上一次程序保存的對象。本例難度為中級,適合具有 Python 基礎和 Tkinter 組件編程知識的用戶學習。

2. 示例效果

怎么用python實現登錄與注冊功能

怎么用python實現登錄與注冊功能

3. 示例源碼

import tkinter as tk
import pickle
import tkinter.messagebox
from PIL import Image, ImageTk
 
# 設置窗口---最開始的母體窗口
window = tk.Tk()  # 建立一個窗口
window.title('歡迎登錄')
window.geometry('450x300')  # 窗口大小為300x200
 
# 畫布
canvas = tk.Canvas(window, height=200, width=900)
# 加載圖片
im = Image.open("images/01.png")
image_file = ImageTk.PhotoImage(im)
# image_file = tk.PhotoImage(file='images/01.gif')
image = canvas.create_image(100, 40, anchor='nw', image=image_file)
canvas.pack(side='top')
 
# 兩個文字標簽,用戶名和密碼兩個部分
tk.Label(window, text='用戶名').place(x=100, y=150)
tk.Label(window, text='密  碼').place(x=100, y=190)
 
var_usr_name = tk.StringVar()  # 講文本框的內容,定義為字符串類型
var_usr_name.set('amoxiang@163.com')  # 設置默認值
var_usr_pwd = tk.StringVar()
 
# 第一個輸入框-用來輸入用戶名的。
# textvariable 獲取文本框的內容
entry_usr_name = tk.Entry(window, textvariable=var_usr_name)
entry_usr_name.place(x=160, y=150)
# 第二個輸入框-用來輸入密碼的。
entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*')
entry_usr_pwd.place(x=160, y=190)
 
 
def usr_login():
    usr_name = var_usr_name.get()
    usr_pwd = var_usr_pwd.get()
    try:
        with open('usrs_info.pickle', 'rb') as usr_file:
            usrs_info = pickle.load(usr_file)
    except FileNotFoundError:
        with open('usrs_info.pickle', 'wb') as usr_file:
            usrs_info = {'admin': 'admin'}
            pickle.dump(usrs_info, usr_file)
 
    if usr_name in usrs_info:
        if usr_pwd == usrs_info[usr_name]:
            tk.messagebox.showinfo(
                title='歡迎光臨', message=usr_name + ':請進入個人首頁,查看最新資訊')
        else:
            tk.messagebox.showinfo(message='錯誤提示:密碼不對,請重試')
    else:
        is_sign_up = tk.messagebox.askyesno('提示', '你還沒有注冊,請先注冊')
        print(is_sign_up)
        if is_sign_up:
            usr_sign_up()
 
 
# 注冊按鈕
def usr_sign_up():
    def sign_to_Mofan_Python():
        np = new_pwd.get()
        npf = new_pwd_confirm.get()
        nn = new_name.get()
        # 上面是獲取數據,下面是查看一下是否重復注冊過
        with open('usrs_info.pickle', 'rb') as usr_file:
            exist_usr_info = pickle.load(usr_file)
            if np != npf:
                tk.messagebox.showerror('錯誤提示', '密碼和確認密碼必須一樣')
            elif nn in exist_usr_info:
                tk.messagebox.showerror('錯誤提示', '用戶名早就注冊了!')
            else:
                exist_usr_info[nn] = np
                with open('usrs_info.pickle', 'wb') as usr_file:
                    pickle.dump(exist_usr_info, usr_file)
                tk.messagebox.showinfo('歡迎', '你已經成功注冊了')
                window_sign_up.destroy()
 
    # 點擊注冊之后,會彈出這個窗口界面。
    window_sign_up = tk.Toplevel(window)
    window_sign_up.title('歡迎注冊')
    window_sign_up.geometry('360x200')  # 中間是x,而不是*號
 
    # 用戶名框--這里輸入用戶名框。
    new_name = tk.StringVar()
    new_name.set('amoxiang@163.com')  # 設置的是默認值
    tk.Label(window_sign_up, text='用戶名').place(x=10, y=10)
    entry_new_name = tk.Entry(window_sign_up, textvariable=new_name)
    entry_new_name.place(x=100, y=10)
 
    # 新密碼框--這里輸入注冊時候的密碼
    new_pwd = tk.StringVar()
    tk.Label(window_sign_up, text='密  碼').place(x=10, y=50)
    entry_usr_pwd = tk.Entry(window_sign_up, textvariable=new_pwd, show='*')
    entry_usr_pwd.place(x=100, y=50)
 
    # 密碼確認框
    new_pwd_confirm = tk.StringVar()
    tk.Label(window_sign_up, text='確認密碼').place(x=10, y=90)
    entry_usr_pwd_confirm = tk.Entry(
        window_sign_up, textvariable=new_pwd_confirm, show='*')
    entry_usr_pwd_confirm.place(x=100, y=90)
 
    btn_confirm_sign_up = tk.Button(
        window_sign_up, text=' 注  冊 ', command=sign_to_Mofan_Python)
    btn_confirm_sign_up.place(x=120, y=130)
 
 
# 創建注冊和登錄按鈕
btn_login = tk.Button(window, text=' 登  錄 ', command=usr_login)
btn_login.place(x=150, y=230)  # 用place來處理按鈕的位置信息。
btn_sign_up = tk.Button(window, text=' 注  冊 ', command=usr_sign_up)
btn_sign_up.place(x=250, y=230)
 
window.mainloop()

到此,相信大家對“怎么用python實現登錄與注冊功能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

前郭尔| 内丘县| 隆尧县| 光山县| 巫山县| 德令哈市| 金平| 都匀市| 三台县| 莒南县| 龙口市| 遵化市| 天峨县| 沁水县| 长岛县| 于田县| 芦溪县| 格尔木市| 泌阳县| 印江| 宁阳县| 施甸县| 尚志市| 巩留县| 平谷区| 晋中市| 泸定县| 武宁县| 蕉岭县| 龙门县| 普陀区| 五寨县| 葫芦岛市| 哈尔滨市| 霞浦县| 宝山区| 民丰县| 延庆县| 岗巴县| 灵宝市| 虎林市|