日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

Python+tkinter库实现简单图书管理系统

發(fā)布時(shí)間:2024/3/12 windows 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python+tkinter库实现简单图书管理系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 前言
  • 一、MySQL是什么?
  • 二、Tkinter庫(kù)
  • 三、Code步驟
    • 1.引入庫(kù)
    • 2.使用tkinter搭建系統(tǒng)
    • 3.定義函數(shù)(發(fā)送消息,操作mysql數(shù)據(jù)庫(kù))
  • 總結(jié)


前言

使用mysql數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),使用python中tkinter庫(kù)建立一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、MySQL是什么?

MySQL 是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),增加了速度并提高了靈活性。

  • MySQL的使用教程
    https://www.runoob.com/mysql/mysql-tutorial.html

二、Tkinter庫(kù)

Tkinter 是 Python 的標(biāo)準(zhǔn) GUI 庫(kù)。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應(yīng)用程序。

由于 Tkinter 是內(nèi)置到 python 的安裝包中、只要安裝好 Python 之后就能 import Tkinter 庫(kù)、而且 IDLE 也是用 Tkinter 編寫而成、對(duì)于小白而言,搭建一個(gè)簡(jiǎn)單的圖形界面 Tkinter 還是一個(gè)不錯(cuò)的選擇。

  • Tkinterl的使用教程
    https://www.runoob.com/python/python-gui-tkinter.html

三、Code步驟

1.引入庫(kù)

import tkinter as tk import tkinter.ttk as ttk from pymysql import connect from tkinter.messagebox import showinfo from tkinter.constants import END, N, SINGLE

2.使用tkinter搭建系統(tǒng)

代碼如下(示例):

#主窗口 root=tk.Tk() root.title("YU_book_manage_system") root.geometry("750x500+100+100")#菜單 menubar=tk.Menu(root) filemenu=tk.Menu(menubar,tearoff=0) menubar.add_cascade(label="菜單",menu=filemenu) filemenu.add_command(label="打開") filemenu.add_command(label="保存") filemenu.add_command(label="退出",command=root.destroy) root.config(menu=menubar)#面板&框架 pw=tk.PanedWindow(root,orient="vertical",sashrelief="sunken") pw.pack(fill="both",expand=1)pw1=tk.PanedWindow(pw,orient="horizontal",sashrelief="sunken") pw2=tk.PanedWindow(pw,orient="horizontal",sashrelief="sunken") top_frame,left_frame,mid_frame,right_frame=ttk.Frame(pw1,height=125,relief="flat"),\ttk.Frame(pw2,relief="sunken"),\ttk.Frame(pw2,relief="raised"),\ttk.Frame(pw2,relief="ridge")pw.add(pw1),pw.add(pw2),pw1.add(top_frame),pw2.add(left_frame),pw2.add(mid_frame),pw2.add(right_frame)labelframe=tk.LabelFrame(left_frame,text="圖書信息",font=("迷你簡(jiǎn)魏碑",16),labelanchor=N) ttk.Label(labelframe,text=("編號(hào)","圖書名稱","圖書作者","出版日期","圖書數(shù)量"),font=("華文行楷",11),anchor="n").pack()#列表框&滾動(dòng)條 scrollbar=ttk.Scrollbar(labelframe) listbox=tk.Listbox(labelframe,width=60,font=("黑體",11),height=20,yscrollcommand=scrollbar,selectmode=SINGLE) listbox.select_set(0) #鏈接滾動(dòng)條&列表框 scrollbar.config(command=listbox.yview)labelframe.pack(expand=0),scrollbar.pack(side="right",fill="y",pady=2),listbox.pack(side="left",pady=2)#初始listbox show_book()#填充文本&輸入框 ttk.Label(top_frame,text="圖書管理系統(tǒng)",font=("方正字跡-呂建德行楷繁體",25)).pack(pady=30) ttk.Label(mid_frame,text="圖書編號(hào)",font=("黑體",10)).place(x=0,y=55) ttk.Label(mid_frame,text="圖書名稱",font=("黑體",10)).place(x=0,y=120) ttk.Label(mid_frame,text="圖書作者",font=("黑體",10)).place(x=0,y=185) ttk.Label(mid_frame,text="出版日期",font=("黑體",10)).place(x=0,y=250) ttk.Label(mid_frame,text="圖書數(shù)量",font=("黑體",10)).place(x=0,y=315)#entry變量 v1=tk.StringVar() v2=tk.StringVar() v3=tk.StringVar() v4=tk.StringVar() v5=tk.StringVar()e1=ttk.Entry(mid_frame,width=16,textvariable=v1) e2=ttk.Entry(mid_frame,width=16,textvariable=v2) e3=ttk.Entry(mid_frame,width=16,textvariable=v3) e4=ttk.Entry(mid_frame,width=16,textvariable=v4) e5=ttk.Entry(mid_frame,width=16,textvariable=v5)#單獨(dú)放置(由于get方法) e1.pack(padx=5,pady=80) e2.place(x=5,y=145) e3.place(x=5,y=205) e4.place(x=5,y=270) e5.place(x=5,y=335)#消息發(fā)送 button1=ttk.Button(right_frame,text="查詢圖書",command=find_book).pack(pady=64) button2=ttk.Button(right_frame,text="增加圖書",command=add_book).pack() button3=ttk.Button(right_frame,text="修改圖書",command=mod_book).pack(pady=64) button4=ttk.Button(right_frame,text="刪除圖書",command=del_book).pack() button5=ttk.Button(mid_frame,text="寫入",command=get_data).place(x=20,y=15)root.mainloop()

圖書管理界面截圖


3.定義函數(shù)(發(fā)送消息,操作mysql數(shù)據(jù)庫(kù))

函數(shù)建議放在前面,代碼如下(示例):

#添加圖書 def add_book():try:conn=connect(host="localhost",port=3306,database="book_manage",user="root",password="yusql",charset="utf8")cur=conn.cursor()cur.execute("select *from books")data=cur.fetchall()param2=e2.get()param3=e3.get()param4=e4.get()param5=int(e5.get())for item in data:if item[1]==param2 and item[2]==param3:param5+=1cur.execute("update books set bnumber=%s where btitle=%s and bauthor=%s",(param5,param2,param3))conn.commit()show_book()showinfo("窗口","圖書存在,數(shù)量加一")return()cur.execute("insert into books(btitle,bauthor,byu_date,bnumber)values(%s,%s,%s,%s)",(param2,param3,param4,param5))conn.commit()show_book()showinfo("窗口","添加成功")except:showinfo("窗口","輸入格式錯(cuò)誤")#刪除圖書 def del_book():conn=connect(host="localhost",port=3306,database="book_manage",user="root",password="yusql",charset="utf8")cur=conn.cursor()param1=int(e1.get())param2=e2.get()param3=e3.get()param4=e4.get()param5=int(e5.get())if param5>1:param5-=1cur.execute("update books set id=%s,btitle=%s,bauthor=%s,byu_date=%s,bnumber=%s where btitle=%s and bauthor=%s",(param1,param2,param3,param4,param5,param2,param3))conn.commit()show_book()showinfo("窗口","圖書存在,數(shù)量減一")return() else:cur.execute("delete from books where id=%s and btitle=%s",(param1,param2))conn.commit()cur.execute("alter table books drop id")cur.execute("alter table books add id int(12) primary key not null auto_increment first")show_book()showinfo("窗口","刪除成功")#更新圖書 def show_book():conn=connect(host="localhost",port=3306,database="book_manage",user="root",password="yusql",charset="utf8")cur=conn.cursor()cur.execute("select *from books")data=cur.fetchall()listbox.delete(0,END)for item in data:listbox.insert("end",item) cur.close()conn.close()#修改圖書 def mod_book():try:conn=connect(host="localhost",port=3306,database="book_manage",user="root",password="yusql",charset="utf8")cur=conn.cursor()param1=int(e1.get())param2=e2.get()param3=e3.get()param4=e4.get()param5=int(e5.get())cur.execute("update books set id=%s,btitle=%s,bauthor=%s,byu_date=%s,bnumber=%s where id=%s",(param1,param2,param3,param4,param5,param1))conn.commit()show_book()showinfo("窗口","修改成功")except:showinfo("窗口","輸入格式錯(cuò)誤")#查詢圖書 def find_book():try:conn=connect(host="localhost",port=3306,database="book_manage",user="root",password="yusql",charset="utf8")cur=conn.cursor()param=e2.get()cur.execute("select *from books")data=cur.fetchall()for item in data:if item[1]==param:showinfo("窗口",item)cur.close()conn.close()except:showinfo("窗口","無該圖書")#得到選中列表框數(shù)據(jù) def get_data():value=listbox.get(listbox.curselection())v1.set(value[0])v2.set(value[1])v3.set(value[2])v4.set(value[3])v5.set(value[4])

總結(jié)

本文僅僅簡(jiǎn)單使用了tkinter搭建了一個(gè)簡(jiǎn)單的圖書管理系統(tǒng),你也可以搭建其他的信息管理系統(tǒng)或者對(duì)代碼進(jìn)行改進(jìn),添加更多的功能。

總結(jié)

以上是生活随笔為你收集整理的Python+tkinter库实现简单图书管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品a | 色七七在线| 精品亚洲一区二区三区四区五区 | 奶妈的诱惑 | 中日韩精品一区二区三区 | 97久久综合 | 日本两性视频 | 日本五十路 | 992tv成人免费视频 | 久久精品成人 | 亚洲看片网| 美女扒开腿让男人 | 亚洲午夜久久久久久久久红桃 | 国产妇女馒头高清泬20p多 | 91九色论坛 | 国产精品成久久久久三级 | 国产又黄又猛又粗 | 日av一区 | www.第四色| xx性欧美肥妇精品久久久久久 | 成人手机在线视频 | 2019日韩中文字幕 | 亚州精品国产精品乱码不99按摩 | 爱情岛论坛永久入址测速 | 高潮videossex高潮 | 免费色av | 亚洲麻豆一区二区三区 | 亚洲三级中文字幕 | 在厨房拨开内裤进入毛片 | 日本黄色片视频 | 亚洲午夜伦理 | 毛片专区| 国产一区二区三区精品在线观看 | 欧美成人免费 | 黑料福利| 麻豆911| 人妻少妇一区二区 | 欧美成人一区二区三区四区 | 国产精品xxx| 伊人天堂在线 | 色婷婷六月 | 午夜色网站 | 69视频网址| 国产精品久久久久久久一区二区 | 黄视频免费看在线 | 91视频最新地址 | 欧美大片免费在线观看 | 亚洲二区在线视频 | 另类天堂| 日韩人妻一区二区三区蜜桃 | 黄色小说视频网站 | 黄视频免费在线看 | 欧美一级淫片免费 | 亚洲在线观看一区 | 波多野结衣视频一区二区 | 国产绿帽刺激高潮对白 | 91n视频 | 国产精品久久综合视频 | www操操操| 黄色录像a| 亚洲热久久 | 中文字幕欧美视频 | 熟妇高潮一区二区三区 | zzjj国产精品一区二区 | 久久大尺度 | 亚洲爆爽| 国产又爽又黄无码无遮挡在线观看 | 日本久热| 日韩欧美精品一区二区三区 | 日本特黄特色aaa大片免费 | 亚洲欧美韩日 | 337p粉嫩色噜噜噜大肥臀 | 亚洲av毛片一区二二区三三区 | 天天插av| 亚洲精品无码不卡在线播he | 伊人狼人久久 | 国产日韩免费视频 | 青娱网电信一区电信二区电信三区 | 国产高潮久久 | 国产一二三四在线 | 牛牛影视免费观看 | 天天干天天要 | 黑人无套内谢中国美女 | 精品三级网站 | 色噜噜狠狠一区二区三区牛牛影视 | 大片视频免费观看视频 | 亚洲欧美日韩精品在线 | 日韩欧美一区二区三区在线观看 | 欧美大片大全 | 五月婷婷丁香久久 | www在线| 日韩在线一二三 | 亚洲天堂网站 | 一级黄色在线播放 | 精品国产一区二区三区性色 | 国产精品第八页 | 百合sm惩罚室羞辱调教 | 久久av一区二区 | 热热热av|