1. 程式人生 > 程式設計 >基於python圖書館管理系統設計例項詳解

基於python圖書館管理系統設計例項詳解

寫完這個專案後,導師說這個你完全可以當作畢業專案使用了,寫的很全,很多的都設計考慮周全,但我的腳步絕不止於現在,我想要的是星辰大海!與君共勉!

這個專案不是我的作業, 只是無意中被拉進來了,然後就承擔了所有,肝了一週多,終於完成,但這個也算是一個很大的專案了吧,對於我現在來說,寫這個專案遇到了很多困難,這是真的,其中涉及到資料庫的使用,就遇到了一點瓶頸, 但這不算什麼,還是要被我搞定的。

在這裡插入圖片描述

夢想就像這個遠處夕陽,終究觸手可及!

Python專案:

專案前提:

這個專案涉及到的知識點有很多, 知識串聯起來就會顯得複雜,但這也是鍛鍊自己的一個能力。 下面先描述這個專案的大致結構。

成品圖

在這裡插入圖片描述

架構圖

在這裡插入圖片描述

資料庫圖

在這裡插入圖片描述

思維導圖

在這裡插入圖片描述

專案感想:
畫這個思維導圖的時候,我想了很久,是不是所有功能都需要去實現,我們把這個專案的入口分別學生端和教師端, 那是否就有對應的儲存資料的模組呢, 於是我想到了使用資料庫, 使用資料庫去建立對應的表,然後不就可以分別儲存了嗎,而在這個專案中, 介面的選擇也是很關鍵, 如果不適用介面,還是使用一個原生程式碼互動式, 那麼這個專案的挑戰性就很不人性化,也不友好, 這個我還是選擇了tkinter庫, 簡單上手, 用來設計簡單的介面最好不過了, 然後就是關於 程式的框架 如何去設計, 這個沒有現存的框架去套用, 所以我使用了面對物件的思維去闡述,畢竟老師和學生都有很多相同點, 在這裡使用函式的繼承和多型最好不過了,然後連線到資料庫,這個資料庫我是用MySQL去搭建的, 其他的資料庫也是一樣的道理,其他的也就順手寫完了。整體來說, 這個專案提升還有很大,只不過我現在能力不足, 也快考試了,沒這麼多時間去搞,生活還得向前走,加油!

因為這個專案程式碼太多了, 在這裡就不分享出來,有需要的可以私聊找我!

如果覺得文章很長,可以根據目錄進行跳轉閱讀! 也可以收藏關注點選,謝謝。

專案框架:

在__init__函式中:

這是一個建構函式, 在這裡單獨的拿出來,就是方便程式的執行,也方便列印一些help資訊。 在下面這些程式碼中, 匯入了很多模組,對的, 這些不是第三方庫哦, 這是我自己編寫的類函式,在下面的例項中,你們也可以看到,使用這樣的方便,在編寫程式碼的時候可以方便很多,你們一定要用!

# # -*- coding : utf-8 -*-
# @Time   : 2020/7/1 21:29
# @author  : 沙漏在下雨
# @Software : PyCharm
# @CSDN   : https://me.csdn.net/qq_45906219
from TeacherLogin import TeacherLogin
from StudentLogin import StudentLogin
from mysql_login import Mysql
from Login import Login

text = """
author: 沙漏在下雨
time: 七月計劃
嘗試使用python 搭建一個 圖書館管理系統
使用tkinter作為簡易的GUI介面
功能上滿足日常所需
資料儲存在本地資料庫中
"""
print(text)
print(help(StudentLogin))
print(help(TeacherLogin))
print(help(Mysql))
print(help(Login))
Login()

Login登入模組:

講道理,我應該先闡述一下注冊的, 不然都沒有賬號,怎麼點選登入。但是因為我把主要模組寫在了login中了, 看下面的圖:

在這裡插入圖片描述

這裡登入方式有二種, 註冊方式也有二種, 分別是管理員和學生,在login模組中, 設定了一個註冊按鈕, 點選註冊按鈕, 整個介面就會跳轉到註冊介面中, 這個稍後再說, 所以整體構架還是存放到login中, 我覺得會很方便一點, 主要是便於傳root 和 password 中。

我們先看看login模組的大致函式,然後細講:

在這裡插入圖片描述

在這裡插入圖片描述

整個__init__ 中, 是生成這個介面的函式, 包括一些必要的值,也構造在其中, 然後根據使用者輸入的賬號密碼, 進行身份的驗證, 這個模組寫到test_db() 中, 如果賬號正確, 那麼就進入對應的模組中, 不對,那麼就會有錯誤彈窗警告,比如這個,或者其他的。

在這裡插入圖片描述

怎麼進行身份的驗證呢 ? 這個其實也很簡單, 連線到資料庫之後,就向資料庫執行檢索命令, 根據賬號進行初步查詢, 然後如果賬號密碼都正確的話, 那不就是身份正常了嗎, 所以思路正確。
登入成功之後, 就會對資料庫進行表單的更新, 我把這個功能寫在了update中, 會更新最後登入時間, 時間的獲取我寫在了get_time中, 這樣就能簡單的實現, 一個登入模組的設定了。

資料庫中:

我覺得還是有必要先講一下資料庫, 瞭解一下資料庫的大致構造, 不然你們看的很暈,我也不好講這些。

我建立了一個數據庫 book , 裡面新建了三個表單, student,teacher,books,分別學生,老師, 圖書表, 互不干擾,相互工作。

在student:

在這裡插入圖片描述

表的大致構造如上, 其實也就是簡單的資訊, 複雜的我暫時也做不了, 然後teacher 表單 資訊 其實和 students 是一樣的, 只不過這樣設計, 可以封開, 更好管理!

在books中;

在這裡插入圖片描述

在這裡插入圖片描述

books欄位的設計,其實也不是很難, 把一些基本資訊加入就可以了,然後這個books中, 我寫了一個小爬蟲, 把表單資訊補充了一下, 先充實一下,方便接下來的操作。

然後我們講一下這個模組中, 這是一個連線資料庫的一個父類,這就很方便其他的類進行繼承, 或者重寫操作, 所以,這個類的實現是十分簡單的,也就是進行資料庫的連線, 關閉, 獲得資料庫的遊標 和 db值, 讓其他類去繼承這些, 就可以進行資料庫的簡單操作了,。

在這裡插入圖片描述

然後我們看看如何註冊賬號,

Register註冊模組:

差點我就忘記註冊這個模組的設計了, 最開始的賬號是我自己直接在資料庫中填入的,我說怎麼感覺少了很多來著, 後面急急忙忙的補上去。
註冊GUI:

註冊分為二種註冊, 一個管理員, 一個學生, 在登入的介面進行選擇,然後註冊的介面也會發生相對於的變化。

在這裡插入圖片描述

變化就是 把 這個管理員註冊 改成 學生註冊 哈哈哈哈哈哈

註冊的時候,也會進行資料的檢測, 比如賬號是否被註冊咯, 密碼是不是過於簡單之類的, 先給出註冊的函式吧

在這裡插入圖片描述

我們在輸入框中輸入的資訊,會通過init函式進行傳值, 所有的都會成為本地變數, 在start_reg中 會進行資訊檢測, 然後給出一些錯誤彈窗,比如這樣:

在這裡插入圖片描述

在這裡插入圖片描述

然後你就要重新思考一個帥氣的名字, 就可以方便你的註冊了,當所有的正常之後,就會執行reg_people 函式, 進行表單的提交,實際上就是更新資料庫, 更新對應的資料庫, 如果是學生註冊就更新student 反之更新teacher表,這樣就完成了註冊模組。 然後就可以很簡單的登入了, 在這裡給一下爬蟲程式先

爬蟲程式:

在這裡插入圖片描述

這個程式碼就不解釋了,需要私聊

學生介面 students:

我們選擇學生登入, 正確輸入, 就會跳轉至學生介面:

介面GUI

在這裡插入圖片描述

登入之後,顯示這樣的介面, 雖然有點醜,,沒事,。

函式大致:

在這裡插入圖片描述

在這裡插入圖片描述

基本上的功能都能實現,也有對應的異常處理方式, 以及彈窗提示, 換句話說, 你想得到的東西,在這裡都能實現, 需要就私聊吧,寫著太累了,一個個描訴。

管理員介面teacher:

不同於學生介面, 管理員介面的功能更加複雜,不, 更加豐富,介面:

在這裡插入圖片描述

在這裡插入圖片描述

介面就是這樣的,tk介面外觀勉勉強強, 還行吧。

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

函式功能也是一樣的,你想的我都能實現,還是一句話,沒有你們想不到的,只有我老八做不到的,奧裡給,肝了。

後記:

一個多禮拜, 千行程式碼, 肝了兄弟們, 需要的私聊我, 還是個學生,你懂的。

到此這篇關於基於python圖書館管理系統設計例項詳解的文章就介紹到這了,更多相關基於python圖書館管理系統設計內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!