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

Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)

 更新時(shí)間:2021年10月21日 10:25:52   作者:鐵甲小寶同學(xué)  
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用MySQL、tkinter、 pyinstaller實(shí)現(xiàn)一個(gè)學(xué)生管理系統(tǒng),大家可以通過(guò)案例查缺補(bǔ)漏,提升水平

終極版終于有時(shí)間給大家分享了?。?!。

我們先看一下效果圖。

1:登錄界面:

2:查詢數(shù)據(jù)庫(kù)所有的內(nèi)容!

3:鏈接數(shù)據(jù)庫(kù):

4:最終的打包!

話不多說(shuō)直接上代碼!?。。?/p>

from tkinter import *
import pymysql
from tkinter.messagebox import *
from tkinter import ttk
 
def get_connect():
    conn = pymysql.connect(host='localhost', user="root", passwd='GAO147258369',database='stu')
    return conn
 
window = Tk()
window.geometry('500x300')
window.title('登錄賬號(hào)!')
 
def create():
    root =Toplevel()
    root.geometry('700x800')
    root.title('學(xué)生管理系統(tǒng)')
 
    Label(root, text="學(xué)號(hào):").place(relx=0, rely=0.05, relwidth=0.1)
    Label(root, text="姓名:").place(relx=0.5, rely=0.05, relwidth=0.1)
    Label(root, text="性別:").place(relx=0, rely=0.1, relwidth=0.1)
    Label(root, text="電話:").place(relx=0.5, rely=0.1, relwidth=0.1)
 
    sid1 = StringVar()
    name1 = StringVar()
    sex1 = StringVar()
    phone = StringVar()
    Entry(root, textvariable=sid1).place(relx=0.1, rely=0.05, relwidth=0.37, height=25)
    Entry(root, textvariable=name1).place(relx=0.6, rely=0.05, relwidth=0.37, height=25)
 
    Entry(root, textvariable=sex1).place(relx=0.1, rely=0.1, relwidth=0.37, height=25)
    Entry(root, textvariable=phone).place(relx=0.6, rely=0.1, relwidth=0.37, height=25)
 
    def add():
        list1 = []
        list1.append(sid1.get())
        list1.append(name1.get())
        list1.append(sex1.get())
        list1.append(phone.get())
        # print(list1)
        connection = get_connect()
        cur = connection.cursor(cursor=pymysql.cursors.DictCursor)
        sql = 'insert into student(學(xué)號(hào),姓名,性別,電話) values("%s","%s","%s", "%s")'
        sid = int(list1[0])
        name = list1[1]
        sex = list1[2]
        iphone = int(list1[3])
        try:
            cur.execute(sql % (sid, name, sex, iphone))
            connection.commit()
        except Exception as e:
            connection.rollback()
            raise e
        finally:
            connection.close()
        showinfo('提示', '添加成功!')
 
    def search():
        showinfo('提示', '請(qǐng)輸入學(xué)號(hào)!')
        into = int(sid1.get())
        conn = pymysql.connect(host='localhost', user="root", passwd="", database='stu')
        cur = conn.cursor()
        sql = 'select * from student ;'
        cur.execute(sql)
        all = cur.fetchall()
        for i in range(len(all)):
            for j in all:
                if into == j[0]:
                    treeview.insert('', i, value=(j[0], j[1], j[2], j[3]))
                    break
            break
 
    def search_all():
        conn = pymysql.connect(host='localhost', user="root", passwd="", database='stu')
        cur = conn.cursor()
        sql = 'select * from student ;'
        cur.execute(sql)
        f = cur.fetchall()
        for i in range(len(f)):
            # for j in range(len(i)):
            treeview.insert('', i, value=(f[i][0], f[i][1], f[i][2], f[i][3]))
 
    Button(root, text="添加信息", command=add).place(relx=0.1, rely=0.2, width=100)
    Button(root, text="查詢個(gè)人信息", command=search).place(relx=0.3, rely=0.2, width=100)
    Button(root, text="查詢所有信息", command=search_all).place(relx=0.6, rely=0.2, width=100)
    Button(root, text="退出程序", command=root.quit).place(relx=0.8, rely=0.2, width=100)
 
    columns = ('學(xué)號(hào)', '姓名', '性別', '電話')
    treeview = ttk.Treeview(root, show='headings', columns=columns)
    treeview.column('學(xué)號(hào)', width=150, anchor='center')
    treeview.column('姓名', width=150, anchor='center')
    treeview.column('性別', width=150, anchor='center')
    treeview.column('電話', width=150, anchor='center')
 
    treeview.heading('學(xué)號(hào)', text='學(xué)號(hào)')
    treeview.heading('姓名', text='姓名')
    treeview.heading('性別', text='性別')
    treeview.heading('電話', text='電話')
 
    treeview.place(rely=0.3, relwidth=0.97)
Label(window,text = '賬號(hào):').place(relx =0, rely = 0.05,relwidth = 0.3)
Label(window,text = '密碼:').place(relx = 0, rely = 0.15,relwidth =0.3)
 
#鼠標(biāo)定位
zh = StringVar()
mm = StringVar()
#輸入框
Entry(window,textvariable =zh, show = None).place(relx =0.3,rely = 0.05,relwidth = 0.3)
Entry(window,textvariable =mm,show ='*').place(relx = 0.3,rely = 0.15 ,relwidth = 0.3)
 
#歡迎大家找小寶交流哦QQ:2922035952
#登陸函數(shù)
def dl():
    if zh.get() == '20' and mm.get() == '' :
        # showinfo('提示!','登錄成功!')
        # window.quit()
        return create()
    else:
        showerror('錯(cuò)誤!','賬號(hào)或密碼錯(cuò)誤!')
 
Button(window,text = '登錄', command =dl).place(relx = 0.2 ,rely = 0.3, relwidth = 0.5)
 
window.mainloop()

還有最后一步——代碼打包?。。?/p>

我們可以用庫(kù)——pyinstaller

下載方法:打開cmd 輸入 pip install pyinstaller

然后在Terminal里輸入 pyinstaller -D -w xxxx.py

然后就成功啦?。。?!

最后總結(jié)一下:

這個(gè)gui界面其實(shí)還可以寫成學(xué)生登錄和老師登錄,再來(lái)一個(gè)注冊(cè)界面,都是用tk去實(shí)現(xiàn),然后老師和學(xué)生登陸后的功能不同,這個(gè)是一個(gè)想法,我沒(méi)有時(shí)間去寫了,有的小伙伴有時(shí)間可以去思考思考哦!!也歡迎和我討論,隨時(shí)歡迎?。?!

最后點(diǎn)點(diǎn)贊吧,我快你沒(méi)動(dòng)力分享了?。?!

到此這篇關(guān)于Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)的文章就介紹到這了,更多相關(guān)Python 學(xué)生管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python判斷某個(gè)用戶對(duì)某個(gè)文件的權(quán)限

    Python判斷某個(gè)用戶對(duì)某個(gè)文件的權(quán)限

    這篇文章主要為大家詳細(xì)介紹了Python如何判斷某個(gè)用戶對(duì)某個(gè)文件的權(quán)限,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • python 實(shí)現(xiàn)彈球游戲的示例代碼

    python 實(shí)現(xiàn)彈球游戲的示例代碼

    這篇文章主要介紹了python 實(shí)現(xiàn)彈球小游戲,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python中try的使用方法詳解

    python中try的使用方法詳解

    這篇文章主要給大家介紹了關(guān)于python中try使用的相關(guān)資料,try語(yǔ)句用于包含一段可能引發(fā)異常的代碼塊,并允許我們定義如何處理這些異常,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Python數(shù)據(jù)結(jié)構(gòu)樹與算法分析

    Python數(shù)據(jù)結(jié)構(gòu)樹與算法分析

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)樹與算法分析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • 利用Python寫一個(gè)爬妹子的爬蟲

    利用Python寫一個(gè)爬妹子的爬蟲

    這篇文章主要給大家介紹了關(guān)于利用Python寫一個(gè)爬妹子爬蟲的相關(guān)資料,文中通過(guò)實(shí)例代碼將實(shí)現(xiàn)的方法一步步介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Python實(shí)現(xiàn)的ftp服務(wù)器功能詳解【附源碼下載】

    Python實(shí)現(xiàn)的ftp服務(wù)器功能詳解【附源碼下載】

    這篇文章主要介紹了Python實(shí)現(xiàn)的ftp服務(wù)器功能,結(jié)合實(shí)例形式分析了Python構(gòu)建ftp服務(wù)器功能的相關(guān)設(shè)置、實(shí)現(xiàn)技巧與操作注意事項(xiàng),并附帶源碼供讀者下載參考,需要的朋友可以參考下
    2019-06-06
  • selenium+python 對(duì)輸入框的輸入處理方法

    selenium+python 對(duì)輸入框的輸入處理方法

    今天小編就為大家分享一篇selenium+python 對(duì)輸入框的輸入處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • Numpy(Pandas)刪除全為零的列的方法

    Numpy(Pandas)刪除全為零的列的方法

    這篇文章主要介紹了Numpy(Pandas)刪除全為零的列的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 使用Python處理數(shù)據(jù)集的技巧分享

    使用Python處理數(shù)據(jù)集的技巧分享

    這篇文章會(huì)從加載數(shù)據(jù)開始,一步步教大家如何格式化數(shù)據(jù)、保存數(shù)據(jù),最后還會(huì)教大家如何加載處理后的數(shù)據(jù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解

    python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解

    這篇文章主要介紹了python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

漯河市| 哈巴河县| 冕宁县| 泸定县| 芜湖县| 赣榆县| 湖南省| 康平县| 南华县| 佛坪县| 克东县| 南华县| 砚山县| 桐庐县| 剑川县| 临汾市| 平舆县| 紫阳县| 筠连县| 东平县| 保康县| 北宁市| 汉川市| 芦溪县| 惠安县| 浦东新区| 上犹县| 岚皋县| 历史| 麻阳| 孟州市| 陆河县| 武隆县| 巴马| 富顺县| 靖宇县| 南澳县| 北碚区| 修武县| 盐亭县| 眉山市|