欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+Mysql實(shí)現(xiàn)登錄注冊(cè)完整代碼示例

 更新時(shí)間:2024年03月29日 09:22:06   作者:我是小石呀  
在開(kāi)發(fā)中用戶(hù)注冊(cè)和登錄是常見(jiàn)的功能需求,這篇文章主要給大家介紹了關(guān)于Python+Mysql實(shí)現(xiàn)登錄注冊(cè)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

簡(jiǎn)介

基于Tkinter的Python程序,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的用戶(hù)登錄和注冊(cè)系統(tǒng)。程序連接了一個(gè)MySQL數(shù)據(jù)庫(kù),用戶(hù)可以通過(guò)輸入正確的用戶(hù)名和密碼進(jìn)行登錄,或者注冊(cè)新的用戶(hù)賬號(hào)。

代碼中創(chuàng)建了兩個(gè)窗口,一個(gè)用于登錄,一個(gè)用于注冊(cè)。用戶(hù)可以在登錄窗口輸入用戶(hù)名和密碼,點(diǎn)擊登錄按鈕進(jìn)行登錄操作。如果用戶(hù)沒(méi)有賬號(hào),可以點(diǎn)擊注冊(cè)按鈕打開(kāi)注冊(cè)窗口,輸入新的用戶(hù)名和密碼,然后點(diǎn)擊注冊(cè)按鈕進(jìn)行注冊(cè)操作。

注冊(cè)信息會(huì)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,當(dāng)用戶(hù)注冊(cè)成功后,會(huì)收到提示并返回到登錄窗口進(jìn)行登錄操作。如果用戶(hù)輸入的賬號(hào)或密碼錯(cuò)誤,會(huì)收到相應(yīng)的錯(cuò)誤提示。

整個(gè)程序的界面使用了Tkinter庫(kù)進(jìn)行設(shè)計(jì),包括標(biāo)簽、文本框和按鈕等控件。數(shù)據(jù)庫(kù)連接和操作使用了pymysql庫(kù)。

總體來(lái)說(shuō),這個(gè)程序是一個(gè)簡(jiǎn)單的用戶(hù)登錄和注冊(cè)系統(tǒng),可以幫助用戶(hù)管理賬號(hào)信息,并且實(shí)現(xiàn)了與數(shù)據(jù)庫(kù)的交互。

工作環(huán)境

pycharm 2023.3.12

MySql 8.0.22

所用三方包

  • tkinter()
  • PyMysql(1.1.0)

代碼實(shí)現(xiàn)

界面布局

登錄界面

# 登錄頁(yè)面控件
lable1 = tkinter.Label(root, text="賬號(hào):", font=('Arial', 15), width=10)  # 創(chuàng)建賬號(hào)標(biāo)簽
lable1.place(x=80, y=10)  # 設(shè)置賬號(hào)標(biāo)簽的位置
text1 = tkinter.Text(root, width=10, height=1, bg="white", fg="black", font=("宋體", 18), bd='0')  # 創(chuàng)建賬號(hào)輸入文本框
text1.place(x=170, y=10)  # 設(shè)置賬號(hào)輸入文本框的位置

lable2 = tkinter.Label(root, text="密碼:", font=('Arial', 15), width=10)  # 創(chuàng)建密碼標(biāo)簽
lable2.place(x=80, y=80)  # 設(shè)置密碼標(biāo)簽的位置
text2 = tkinter.Entry(root, show="*", width=10, bg="white", fg="black", font=("宋體", 18), bd='0')  # 創(chuàng)建密碼輸入文本框
text2.place(x=170, y=80)  # 設(shè)置密碼輸入文本框的位置

button0 = tkinter.Button(root, text="登錄", command=open_login_window)  # 創(chuàng)建登錄按鈕,并將按鈕與登錄函數(shù)關(guān)聯(lián)
button0.place(x=180, y=150)  # 設(shè)置登錄按鈕位置
button1 = tkinter.Button(root, text="退出", command=root.quit)  # 創(chuàng)建退出按鈕,并設(shè)置點(diǎn)擊事件為退出程序
button1.place(x=250, y=150)  # 設(shè)置退出按鈕位置

# 注冊(cè)按鈕
register_button = tkinter.Button(root, text="注冊(cè)", command=open_register_window)
register_button.place(x=110, y=150)

注冊(cè)界面

# 注冊(cè)頁(yè)面控件
register_window = tkinter.Toplevel(root)
register_window.title("注冊(cè)")
register_window.geometry("400x250")
register_window.protocol("WM_DELETE_WINDOW", close_register_window)  # 隱藏窗口而不是關(guān)閉
register_window.withdraw()  # 隱藏窗口

register_lable1 = tkinter.Label(register_window, text="賬號(hào):", font=('Arial', 15), width=10)
register_lable1.place(x=80, y=10)
register_text1 = tkinter.Text(register_window, width=10, height=1, bg="white", fg="black", font=("宋體", 18), bd='0')
register_text1.place(x=170, y=10)

register_lable2 = tkinter.Label(register_window, text="密碼:", font=('Arial', 15), width=10)
register_lable2.place(x=80, y=80)
register_text2 = tkinter.Entry(register_window, show="*", width=10, bg="white", fg="black", font=("宋體", 18), bd='0')
register_text2.place(x=170, y=80)

register_button = tkinter.Button(register_window, text="注冊(cè)", command=register)
register_button.place(x=180, y=150)

登錄功能實(shí)現(xiàn)

def open_login_window():
    # 創(chuàng)建游標(biāo)對(duì)象
    cursor = connection.cursor()

    sql = """SELECT username, password FROM admin"""  # sql查詢(xún)語(yǔ)句,查找admin表中username和password兩個(gè)值
    cursor.execute(sql)  # 執(zhí)行查詢(xún)語(yǔ)句

    # 返回?cái)?shù)據(jù)庫(kù)查詢(xún)的所有信息
    results = cursor.fetchall()
    # print(results)
    # 關(guān)閉游標(biāo)
    cursor.close()
    username = text1.get("1.0", tkinter.END).strip()  # 從文本框中獲取輸入的賬戶(hù)信息
    password = text2.get().strip()  # 從文本框中獲取輸入的密碼信息

    login_success = False
    for temp in results:
        if username == temp[0] and password == temp[1]:
            login_success = True
            break

    if login_success:
        messagebox.showinfo('成功', '登錄成功')
        root.quit()
    else:
        messagebox.showinfo('Error', '賬號(hào)或密碼錯(cuò)誤,請(qǐng)重試')

注冊(cè)功能實(shí)現(xiàn)

def register():
    username = register_text1.get("1.0", tkinter.END).strip()
    password = register_text2.get().strip()
    if username and password:
        cursor = connection.cursor()
        sql = "INSERT INTO admin (username, password) VALUES (%s, %s)"
        cursor.execute(sql, (username, password))
        connection.commit()
        cursor.close()
        messagebox.showinfo('成功', '注冊(cè)成功,請(qǐng)登錄')
        register_window.withdraw()
        root.deiconify()
    else:
        messagebox.showinfo('Error', '賬號(hào)或密碼不能為空')

數(shù)據(jù)庫(kù)連接

# 建立數(shù)據(jù)庫(kù)連接
connection = pymysql.connect(
    host='localhost',  # 數(shù)據(jù)庫(kù)主機(jī)名,一般為localhost
    port=3306,               # 數(shù)據(jù)庫(kù)端口號(hào),默認(rèn)為3306
    user='root',             # 你的數(shù)據(jù)庫(kù)用戶(hù)名,一般為root
    passwd='database_password',         # 你的數(shù)據(jù)庫(kù)密碼
    db='database_name',               # 數(shù)據(jù)庫(kù)名稱(chēng)
    charset='utf8'           # 字符編碼
)

注冊(cè)頁(yè)面控制函數(shù)

def open_register_window():
    register_window.deiconify()
    root.withdraw()


def close_register_window():
    register_window.withdraw()
    root.deiconify()

程序運(yùn)行效果

總結(jié)

在這個(gè)項(xiàng)目中,我們使用Python的Tkinter庫(kù)和pymysql庫(kù)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的用戶(hù)登錄和注冊(cè)系統(tǒng)。在這個(gè)項(xiàng)目中,我們使用到了以下幾個(gè)方面的知識(shí)和技能:

  • 使用Tkinter庫(kù)創(chuàng)建圖形用戶(hù)界面(GUI):我們使用了Tkinter庫(kù)創(chuàng)建窗口、標(biāo)簽、文本框和按鈕等控件,以及如何將它們布局在界面上。

  • 與MySQL數(shù)據(jù)庫(kù)進(jìn)行連接和操作:我們使用了pymysql庫(kù)連接到MySQL數(shù)據(jù)庫(kù),執(zhí)行SQL查詢(xún)和插入操作,并且將數(shù)據(jù)庫(kù)中的數(shù)據(jù)與用戶(hù)輸入進(jìn)行比對(duì)。

  • 用戶(hù)登錄和注冊(cè)邏輯的實(shí)現(xiàn):我們實(shí)現(xiàn)了用戶(hù)登錄和注冊(cè)的邏輯,包括驗(yàn)證用戶(hù)輸入的賬號(hào)和密碼是否正確,以及在注冊(cè)時(shí)將新的賬號(hào)信息插入到數(shù)據(jù)庫(kù)中。

  • 界面之間的切換和交互:我們?cè)赥kinter中創(chuàng)建多個(gè)窗口,并且實(shí)現(xiàn)了從登錄界面到注冊(cè)界面的切換,以及注冊(cè)成功后返回到登錄界面的邏輯。

通過(guò)這個(gè)項(xiàng)目,我們掌握了基本的GUI設(shè)計(jì)和數(shù)據(jù)庫(kù)操作技能,以及用戶(hù)登錄和注冊(cè)系統(tǒng)的實(shí)現(xiàn)方法。這些知識(shí)和技能可以進(jìn)一步應(yīng)用到更復(fù)雜的項(xiàng)目中,例如開(kāi)發(fā)更完整的用戶(hù)管理系統(tǒng)、圖像檢索系統(tǒng)等。同時(shí),我們也了解到了Tkinter和pymysql庫(kù)的基本用法,為以后的項(xiàng)目開(kāi)發(fā)打下了基礎(chǔ)。

到此這篇關(guān)于Python+Mysql實(shí)現(xiàn)登錄注冊(cè)的文章就介紹到這了,更多相關(guān)Python Mysql實(shí)現(xiàn)登錄注冊(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)猜拳與猜數(shù)字游戲的方法詳解

    Python實(shí)現(xiàn)猜拳與猜數(shù)字游戲的方法詳解

    本文將為大家介紹兩個(gè)用Python語(yǔ)言實(shí)現(xiàn)的小案例:猜拳游戲與數(shù)字猜猜猜小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-04-04
  • Python中的常用函數(shù)使用及說(shuō)明

    Python中的常用函數(shù)使用及說(shuō)明

    這篇文章主要介紹了Python中的常用函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python使用celery實(shí)現(xiàn)訂單超時(shí)取消

    python使用celery實(shí)現(xiàn)訂單超時(shí)取消

    這篇文章主要為大家詳細(xì)介紹了python使用celery實(shí)現(xiàn)訂單超時(shí)取消,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Python 身份驗(yàn)證和授權(quán)庫(kù)使用詳解(python jwt庫(kù))

    Python 身份驗(yàn)證和授權(quán)庫(kù)使用詳解(python jwt庫(kù))

    python_jwt是一個(gè)Python庫(kù),用于生成、解析和驗(yàn)證JSON Web Tokens(JWT),它完全符合JWT標(biāo)準(zhǔn)規(guī)范(RFC 7519),并提供了簡(jiǎn)單而強(qiáng)大的API,使得用戶(hù)可以輕松地在Python應(yīng)用中實(shí)現(xiàn)JWT功能,通過(guò)本文的介紹,深入探討了python_jwt庫(kù)的功能特性、使用方法以及應(yīng)用場(chǎng)景
    2021-01-01
  • Pycharm配置遠(yuǎn)程SSH服務(wù)器實(shí)現(xiàn)(切換不同虛擬環(huán)境)

    Pycharm配置遠(yuǎn)程SSH服務(wù)器實(shí)現(xiàn)(切換不同虛擬環(huán)境)

    本文主要介紹了Pycharm配置遠(yuǎn)程SSH服務(wù)器實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的能夠上傳下載的HTTP服務(wù)器

    用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的能夠上傳下載的HTTP服務(wù)器

    這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的能夠上傳下載的HTTP服務(wù)器,是Python網(wǎng)絡(luò)編程學(xué)習(xí)當(dāng)中的基礎(chǔ),本文示例基于Windows操作系統(tǒng)實(shí)現(xiàn),需要的朋友可以參考下
    2015-05-05
  • Python+OpenCV之圖像梯度詳解

    Python+OpenCV之圖像梯度詳解

    這篇文章主要為大家詳細(xì)介紹了Python OpenCV中圖像梯度(Sobel算子、Scharr算子和Laplacian算子)的實(shí)現(xiàn),感興趣的小伙伴可以了解一下
    2022-09-09
  • PyTorch的Debug指南

    PyTorch的Debug指南

    這篇文章主要介紹了PyTorch的Debug的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用PyTorch,感興趣的朋友可以了解下
    2021-05-05
  • Django MEDIA的配置及用法詳解

    Django MEDIA的配置及用法詳解

    這篇文章主要介紹了Django MEDIA的配置及用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python 實(shí)例方法、類(lèi)方法、靜態(tài)方法的區(qū)別與作用

    Python 實(shí)例方法、類(lèi)方法、靜態(tài)方法的區(qū)別與作用

    Python中至少有三種比較常見(jiàn)的方法類(lèi)型,即實(shí)例方法,類(lèi)方法、靜態(tài)方法。它們是如何定義的呢?如何調(diào)用的呢?它們又有何區(qū)別和作用呢?感興趣的朋友跟隨小編一起看看吧
    2019-08-08

最新評(píng)論