實驗室設(shè)備管理系統(tǒng)
訪問【W(wǎng)RITE-BUG數(shù)字空間】_[內(nèi)附完整源碼和文檔]
應(yīng)用背景
為方便實驗室進行設(shè)備管理,某大學(xué)擬開發(fā)實驗室設(shè)備管理系統(tǒng) 來管理所有實驗室里的各種設(shè)備。系統(tǒng)可實現(xiàn)管理員登錄,查看現(xiàn)有的所有設(shè)備, 增加設(shè)備等功能。
開發(fā)環(huán)境
Mac OS
PyCharm IDE
Python3
Flask(Web框架)
SQLite(數(shù)據(jù)庫)
運行方法
準(zhǔn)備
安裝virtualenv:?
pip3 install virtualenv
創(chuàng)建虛擬環(huán)境:?
virtualenv venv
進虛擬環(huán)境:?
source venv/bin/activate
安裝依賴的包:?
pip install -r requirements.txt
退出虛擬環(huán)境:?
deactivate
運
更新數(shù)據(jù)庫:?
python app.py db upgrade
成戶:?
python app.py init
運:?
python app.py runserver
初始管理員賬戶
郵箱:zhaowrenee@gmail.com 密碼:666666
功能結(jié)構(gòu)
登錄:管理員可以通過輸入預(yù)置的賬號密碼進行登錄。
查看設(shè)備列表:管理員在登錄成功后,應(yīng)立即展示所有設(shè)備信息,設(shè)備 信息應(yīng)包括設(shè)備 ID 號,設(shè)備名,實驗室名,購置時間,購置人。
增加設(shè)備:增加設(shè)備時應(yīng)輸入設(shè)備名,實驗室名,購置人等信息,設(shè)備 增加成功后自動返回系統(tǒng)分配的設(shè)備 ID 號,購置時間應(yīng)為系統(tǒng)自動生成(默認(rèn)為增加設(shè)備的時間)。
[附加] 刪除設(shè)備:管理員本人購置的設(shè)備具有頂級重要性,故不能被刪除
[附加] 搜索設(shè)備:輸入關(guān)鍵詞,顯示名稱中包含關(guān)鍵詞的設(shè)備列表
另外保證:
對輸入數(shù)據(jù)進行合法性驗證,并進行友好提示。
對數(shù)據(jù)庫中的密碼字段加密處理。
提示
設(shè)備 ID 號應(yīng)保證唯一性。
設(shè)備名可重復(fù)。
功能細(xì)節(jié)
一、UML圖
1、活動圖
app.py
中function與?templates
中HTML件對應(yīng),展示在頁中:
index() 通過 SearchForm 實現(xiàn)對戶信息的檢索和展示,并通過 index.html
add_device() 通過 UserForm 實現(xiàn)對新設(shè)備信息的添加,并調(diào) add_device.html
remove_device(id) 通過id刪除設(shè)備,但不能刪除管理員添加的設(shè)備
login() 通過調(diào) LoginForm 實現(xiàn)登錄,并調(diào) login.html 頁登錄,也是服務(wù)器提供的第個頁
其余function對應(yīng)系列錯誤處理和必要但和數(shù)據(jù)庫關(guān)功能
2、用例圖
3、順序圖
4、類圖
HTML使Flask-wtf Bootstrap渲染功能,使界更美觀
app.Role
為戶設(shè)置的用戶或者管理員角類,內(nèi)部有條件角條件約束app.User
?戶類記錄戶名、密碼、id等信息,與數(shù)據(jù)庫的屬性進行交互
app.Device
?設(shè)備類記錄設(shè)備名、實驗室、購置人、購置時間等信息,與數(shù)據(jù)庫的屬性進行交互
FlaskForm 信息表
三種Form根據(jù)不同的操作需求,設(shè)定不同的Field
5、狀態(tài)圖
、基本表單的定義
表一:
roles 身份表名稱類型NOT NULL約束PRIMARY KEY約束UNIQUE約束默認(rèn)外鍵idINTEGER√√nameVARCHAR(64)CREATE TABLE roles (
id INTEGER NOT NULL,
name VARCHAR(64),
PRIMARY KEY (id),
UNIQUE (name)
)
表中實體:
idname1User2Admin



