最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)登錄與注冊功能

 更新時間:2022年01月16日 15:30:07   作者:NGC?2237號  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)登錄與注冊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python實(shí)現(xiàn)登錄與注冊的具體代碼,供大家參考,具體內(nèi)容如下

1. 案例介紹

本例設(shè)計一個用戶登錄和注冊模塊,使用 Tkinter 框架構(gòu)建界面,主要用到畫布、文本框、按鈕等組件。涉及知識點(diǎn):Python Tkinter 界面編程、pickle 數(shù)據(jù)存儲。本例實(shí)現(xiàn)了基本的用戶登錄和注冊互動界面,并提供用戶信息存儲和驗證。pickle 是 python 語言的一個標(biāo)準(zhǔn)模塊,安裝 python 后已包含 pickle 庫,不需要單獨(dú)再安裝。pickle 模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列化和反序列化。通過 pickle 模塊的序列化操作能夠?qū)⒊绦蛑羞\(yùn)行的對象信息保存到文件中去,永久存儲;通過 pickle 模塊的反序列化操作,能夠從文件中創(chuàng)建上一次程序保存的對象。本例難度為中級,適合具有 Python 基礎(chǔ)和 Tkinter 組件編程知識的用戶學(xué)習(xí)。

2. 示例效果

3. 示例源碼

import tkinter as tk
import pickle
import tkinter.messagebox
from PIL import Image, ImageTk
?
# 設(shè)置窗口---最開始的母體窗口
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')
?
# 兩個文字標(biāo)簽,用戶名和密碼兩個部分
tk.Label(window, text='用戶名').place(x=100, y=150)
tk.Label(window, text='密 ?碼').place(x=100, y=190)
?
var_usr_name = tk.StringVar() ?# 講文本框的內(nèi)容,定義為字符串類型
var_usr_name.set('amoxiang@163.com') ?# 設(shè)置默認(rèn)值
var_usr_pwd = tk.StringVar()
?
# 第一個輸入框-用來輸入用戶名的。
# textvariable 獲取文本框的內(nèi)容
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 + ':請進(jìn)入個人首頁,查看最新資訊')
? ? ? ? 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()
? ? ? ? # 上面是獲取數(shù)據(jù),下面是查看一下是否重復(fù)注冊過
? ? ? ? with open('usrs_info.pickle', 'rb') as usr_file:
? ? ? ? ? ? exist_usr_info = pickle.load(usr_file)
? ? ? ? ? ? if np != npf:
? ? ? ? ? ? ? ? tk.messagebox.showerror('錯誤提示', '密碼和確認(rèn)密碼必須一樣')
? ? ? ? ? ? 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('歡迎', '你已經(jīng)成功注冊了')
? ? ? ? ? ? ? ? window_sign_up.destroy()
?
? ? # 點(diǎn)擊注冊之后,會彈出這個窗口界面。
? ? 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') ?# 設(shè)置的是默認(rèn)值
? ? 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)
?
? ? # 密碼確認(rèn)框
? ? new_pwd_confirm = tk.StringVar()
? ? tk.Label(window_sign_up, text='確認(rèn)密碼').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)
?
?
# 創(chuàng)建注冊和登錄按鈕
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()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python numpy庫np.percentile用法說明

    python numpy庫np.percentile用法說明

    這篇文章主要介紹了python numpy庫np.percentile用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • CPython 垃圾收集器檢測循環(huán)引用詳解

    CPython 垃圾收集器檢測循環(huán)引用詳解

    這篇文章主要為大家介紹了CPython 垃圾收集器檢測循環(huán)引用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Python實(shí)現(xiàn)掃碼工具的示例代碼

    Python實(shí)現(xiàn)掃碼工具的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)掃碼工具的示例代碼,代碼簡單易懂對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 使用python?scrapy爬取天氣并導(dǎo)出csv文件

    使用python?scrapy爬取天氣并導(dǎo)出csv文件

    由于工作需要,將爬蟲的文件要保存為csv,以前只是保存為json,下面這篇文章主要給大家介紹了關(guān)于如何使用python?scrapy爬取天氣并導(dǎo)出csv文件的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python collections中的雙向隊列deque簡單介紹詳解

    Python collections中的雙向隊列deque簡單介紹詳解

    這篇文章主要介紹了Python collections中的雙向隊列deque簡單介紹詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 用 Python 定義 Schema 并生成 Parquet 文件詳情

    用 Python 定義 Schema 并生成 Parquet 文件詳情

    本文將演示兩個例子,一個是沒有層級的兩個字段,另一個是含于嵌套級別的字段,將要使用到的 Python 模塊有 pandas 和 pyarrow,感興趣是我小伙伴請和小編一起學(xué)習(xí)下面文章內(nèi)容吧
    2021-09-09
  • Pytest如何使用skip跳過執(zhí)行測試

    Pytest如何使用skip跳過執(zhí)行測試

    這篇文章主要介紹了Pytest如何使用skip跳過執(zhí)行測試,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • python3.6利用pyinstall打包py為exe的操作實(shí)例

    python3.6利用pyinstall打包py為exe的操作實(shí)例

    今天小編就為大家分享一篇python3.6利用pyinstall打包py為exe的操作實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python 進(jìn)程操作之進(jìn)程間通過隊列共享數(shù)據(jù),隊列Queue簡單示例

    Python 進(jìn)程操作之進(jìn)程間通過隊列共享數(shù)據(jù),隊列Queue簡單示例

    這篇文章主要介紹了Python 進(jìn)程操作之進(jìn)程間通過隊列共享數(shù)據(jù),隊列Queue,結(jié)合實(shí)例形式分析了Python進(jìn)程數(shù)據(jù)共享、隊列數(shù)據(jù)處理相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • 詳解Python中import模塊導(dǎo)入的實(shí)現(xiàn)原理

    詳解Python中import模塊導(dǎo)入的實(shí)現(xiàn)原理

    這篇文章主要給大家介紹了Python中import模塊導(dǎo)入的實(shí)現(xiàn)原理,主要從什么是模塊,import搜索路徑以及導(dǎo)入原理這三個方面給大家介紹,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08

最新評論

宜宾市| 鲜城| 信丰县| 梓潼县| 鸡泽县| 五河县| 白河县| 谢通门县| 安徽省| 兰考县| 宝丰县| 凌海市| 长汀县| 绥中县| 石柱| 河东区| 剑川县| 宾阳县| 三门县| 五台县| 三台县| 陵川县| 江川县| 新昌县| 应用必备| 都江堰市| 太湖县| 二手房| 诸城市| 安新县| 石狮市| 绥滨县| 卢氏县| 平塘县| 交城县| 儋州市| 西乌珠穆沁旗| 安吉县| 马尔康县| 虹口区| 韶山市|