《基于Django的實(shí)驗(yàn)室設(shè)備管理系統(tǒng)設(shè)計(jì)效果分析》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于Django的實(shí)驗(yàn)室設(shè)備管理系統(tǒng)設(shè)計(jì)效果分析(4頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于Django的實(shí)驗(yàn)室設(shè)備管理系統(tǒng)設(shè)計(jì)效果分析
0 引言
實(shí)驗(yàn)室設(shè)備管理一直是一項(xiàng)繁瑣的工作,包括實(shí)驗(yàn)耗品的入庫(kù)和領(lǐng)用,硬件設(shè)備的入庫(kù)、領(lǐng)用和報(bào)廢等。由于缺少數(shù)據(jù)的集中管理,查找設(shè)備的相關(guān)信息時(shí)比較困難。本文實(shí)現(xiàn)了Django技術(shù)開(kāi)發(fā)的實(shí)驗(yàn)室設(shè)備管理系統(tǒng),該系統(tǒng)有助于實(shí)驗(yàn)設(shè)備管理人員對(duì)實(shí)驗(yàn)設(shè)備進(jìn)行管理。
1 關(guān)鍵技術(shù)
Django是一個(gè)開(kāi)源的Web應(yīng)用框架,由Python語(yǔ)言編寫(xiě),用來(lái)減少開(kāi)發(fā)復(fù)雜的數(shù)據(jù)庫(kù)驅(qū)動(dòng)站點(diǎn)所要求的工作。Django注重組件的重用性和"可插拔性";,以及敏捷開(kāi)發(fā)和DRY法則。Django框架的核心包括:一個(gè)面向?qū)ο蟮挠成淦?,用作?shù)據(jù)模型(以Py
2、thon類(lèi)的形式定義)和關(guān)聯(lián)性數(shù)據(jù)庫(kù)間的媒介;一個(gè)基于正則表達(dá)式的URL分發(fā)器;一個(gè)視圖系統(tǒng),用于處理請(qǐng)求;一個(gè)模板系統(tǒng)【1】。
Django可以運(yùn)行在許多Web服務(wù)器上,例如Apache,或者是任何WSGI兼容的服務(wù)器。同時(shí),Django還支持許多數(shù)據(jù)庫(kù)引擎,例如PostgreSQL、MySQL、Oracle。
2 系統(tǒng)需求分析
2.1 功能需求分析
根據(jù)實(shí)驗(yàn)室設(shè)備的日常管理,系統(tǒng)主要功能分為如下幾個(gè)部分:
(1)實(shí)驗(yàn)耗品管理。每年實(shí)驗(yàn)室都會(huì)申購(gòu)一批實(shí)驗(yàn)耗品,例如焊錫、松香、實(shí)驗(yàn)用電路板、可充電電池等。該功能負(fù)責(zé)管理實(shí)驗(yàn)耗品的購(gòu)入、使用、存量、記錄和查詢等
3、數(shù)據(jù)信息。
(2)非易耗品設(shè)備管理。實(shí)驗(yàn)設(shè)備主要是一些非易耗品,例如電腦、投影儀等。這些非易耗品不會(huì)經(jīng)常損耗,但是會(huì)涉及到設(shè)備的采購(gòu)入庫(kù)、報(bào)廢、設(shè)備的領(lǐng)用場(chǎng)地等數(shù)據(jù)【2】。該功能主要實(shí)現(xiàn)這些非易耗品的入庫(kù)、報(bào)廢、設(shè)備目前使用情況等數(shù)據(jù)信息的管理。
(3)領(lǐng)用申請(qǐng)模塊。要使用實(shí)驗(yàn)耗品和非易耗品都需要進(jìn)行領(lǐng)用的申請(qǐng)。領(lǐng)用申請(qǐng)包括領(lǐng)用數(shù)量、領(lǐng)用類(lèi)型、領(lǐng)用人、領(lǐng)用原由等信息【3】。根據(jù)這些信息,可以快速、準(zhǔn)確地查到實(shí)驗(yàn)設(shè)備的使用情況。
2.2 非功能需求分析
非功能需求通常包括系統(tǒng)的效率、可靠性、可用性、可維護(hù)性、適應(yīng)性和易用性等。系統(tǒng)在高校內(nèi)部使用,因而用戶不會(huì)太多,但
4、仍然對(duì)并發(fā)訪問(wèn)時(shí)的系統(tǒng)性能有要求:①單用戶操作系統(tǒng)時(shí),2s之內(nèi)出現(xiàn)結(jié)果;②多個(gè)用戶同時(shí)訪問(wèn)操作系統(tǒng),要求并發(fā)的響應(yīng)時(shí)間不得超過(guò)8s;③對(duì)于惡意入侵,比如網(wǎng)絡(luò)包攻擊、SQL注入攻擊等具有防范能力;④系統(tǒng)的理想故障頻率為1次/年,最壞故障頻率為2次/年,最理想故障頻率為0.5次/年。
系統(tǒng)的易用性在設(shè)計(jì)方面的要求是界面友好、符合用戶操作習(xí)慣、易上手。即:①系統(tǒng)界面簡(jiǎn)單整潔,布局設(shè)計(jì)合理,符合目前一般用戶的使用習(xí)慣;②盡量減少使用者的輸入量,人機(jī)對(duì)話友好,有操作錯(cuò)誤提示,處理錯(cuò)誤的數(shù)據(jù)輸入。
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
Django是一個(gè)典型的MVC模型框架,
5、view.py、url.py、model.py分別代表模型、視圖和控制,分別處理表現(xiàn)層、控制層和數(shù)據(jù)層的業(yè)務(wù)處理。系統(tǒng)體系結(jié)構(gòu)如圖1所示。
圖1 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)體系結(jié)構(gòu)
使用MVC結(jié)構(gòu),使得基于實(shí)驗(yàn)室設(shè)備管理系統(tǒng)滿足如下要求:
(1)非功能性需求中的易用性。用戶使用系統(tǒng)不需要占用客戶機(jī)太多的資源,在人機(jī)交互過(guò)程中操作簡(jiǎn)便。
(2)非功能性需求中的可用性。系統(tǒng)采用B/S、MVC結(jié)構(gòu),在服務(wù)器端設(shè)置網(wǎng)絡(luò)防火墻可以防止一般的網(wǎng)絡(luò)攻擊。在系統(tǒng)方面,MVC分離了頁(yè)面和數(shù)據(jù)庫(kù),無(wú)法通過(guò)控制直接修改數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù),由于使用了Django的模板技術(shù)和自帶的ORM框架,保證了系
6、統(tǒng)的安全可用。
(3)非功能需求中的可維護(hù)性和適應(yīng)性。系統(tǒng)的分層設(shè)計(jì)使得系統(tǒng)的升級(jí)維護(hù)更加簡(jiǎn)單。系統(tǒng)只是在服務(wù)器上運(yùn)行,客戶通過(guò)瀏覽器進(jìn)行訪問(wèn),所以系統(tǒng)的升級(jí)維護(hù)都只需要在客戶機(jī)上進(jìn)行,不需要耗費(fèi)大量成本進(jìn)行維護(hù)升級(jí)。
3.2 系統(tǒng)功能設(shè)計(jì)
根據(jù)功能需求分析,系統(tǒng)需要完成對(duì)耗材、非耗材的領(lǐng)用情況、庫(kù)存方面的管理。系統(tǒng)功能模塊如圖2所示。
圖2 系統(tǒng)功能模塊
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
系統(tǒng)數(shù)據(jù)庫(kù)的主要實(shí)體表如表1表3所示。
表1 耗品清單(nlab_consumption)
字段名數(shù)據(jù)長(zhǎng)度是否允許空備注
idint(4)否主鍵
cons
7、umptionVarchar(50)是耗品名稱(chēng)
cnumberInt(4)是耗品數(shù)量
storageTimesmalldatetime是入庫(kù)時(shí)間
表2 設(shè)備清單(nlab_device)
字段名數(shù)據(jù)長(zhǎng)度是否允許空備注
idInt(4)否主鍵
devicenvarchar(50)是設(shè)備名稱(chēng)
damountInt(4)是設(shè)備數(shù)量
dtypenvarchar(50)是設(shè)備類(lèi)型
dstrorageTimedatetime是入庫(kù)時(shí)間
scrapint(4)是是否報(bào)廢
assetNumbernvarchar(20)是資產(chǎn)號(hào)
表3 領(lǐng)用信
8、息(nlab_useinfo)
字段名數(shù)據(jù)長(zhǎng)度是否允許空備注
idInt(4)否主鍵
usernameVarchar(20)是領(lǐng)用人名字
usertimeSmalldatetime是領(lǐng)用時(shí)間
purposeVarchar(20)是用途
usenumberInt(4)是領(lǐng)用數(shù)量
returnInt(4)是是否歸還
4 系統(tǒng)實(shí)現(xiàn)
4.1 開(kāi)發(fā)環(huán)境
系統(tǒng)開(kāi)發(fā)采用Python2.7,Django1.6版本,Web服務(wù)器采用Apache,數(shù)據(jù)庫(kù)使用MySQL。編寫(xiě)代碼的工具采用Eclipse,利用PyDev插件,實(shí)現(xiàn)了在Eclipse中開(kāi)發(fā)D
9、jango的應(yīng)用項(xiàng)目。項(xiàng)目文件如圖3所示。
4.2 部分實(shí)現(xiàn)代碼
使用Eclipse創(chuàng)建一個(gè)Django的工程后,會(huì)產(chǎn)生一些.py的文件,包括views.py、urls.py、settings.py、admin.py等,這些文件包括了項(xiàng)目的配置、Django自帶后臺(tái)的管理配置、數(shù)據(jù)庫(kù)ORM、視圖和控制的配置與開(kāi)發(fā)等。
圖3 項(xiàng)目文件
4.2.1 urls.py
urls.py文件負(fù)責(zé)配置URL的地址映射和管理URL的地址格式。通過(guò)正則表達(dá)式注冊(cè)站點(diǎn)信息,核心代碼如下:
admin.autodiscover()
urlpatterns = pat
10、terns(, include(admin.site.urls)),)
4.2.2 settings.py
settings.py是Django工程的配置文件,與工程相關(guān)的工程模塊和數(shù)據(jù)庫(kù)全局配置信息都在settings.py中設(shè)置。在該文件中加入項(xiàng)目及配置數(shù)據(jù)庫(kù),相關(guān)代碼如下:
INSTALLED_APPS = (
django.contrib.admin,
django.contrib.auth,
django.contrib.contenttypes,
django.contrib.sessions,
django.contrib.me
11、ssages,
django.contrib.staticfiles,
nlab,#這里添加了nlab項(xiàng)目
)
DATABASES = {
default: {
ENGINE: django.db.backends.mysql,
NAME: djangoNlab,
USER:root,
PASSWORD: ,
}
}
4.2.3 models.py
借助Django內(nèi)部的對(duì)象關(guān)系映射機(jī)制,可以用Python語(yǔ)言實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)表中實(shí)體的操作,實(shí)體模型的描述需要在文件models.py中配置。models.py中
12、nlab_consumption表對(duì)應(yīng)的代碼如下:
class nlab_consumption(models.Model):
id = models.IntegerField (max_length = 4)
consumption = models.CharField(max_length = 50)
cnumber = models.IntegerField (max_length = 4)
storageTime = models.DateField(blank = False,null = True)
def __unicode__(self):
13、
return self. consumption
class Meta:
ordering =
4.2.4 admin.py
admin.py中添加要管理的對(duì)象。當(dāng)配置文件的改動(dòng)完成后,執(zhí)行命令,Django會(huì)根據(jù)模型的定義自動(dòng)完成ORM的數(shù)據(jù)庫(kù)映射工作,屏蔽了底層數(shù)據(jù)庫(kù)細(xì)節(jié)和SQL查詢的編寫(xiě)。注冊(cè)對(duì)象代碼如下:
admin.site.register(nlab_consumption)
5 結(jié)語(yǔ)
通過(guò)實(shí)驗(yàn)室設(shè)備管理系統(tǒng),可以高效地查詢到耗品和硬件設(shè)備的使用情況,能夠提高耗品的使用效率,避免重復(fù)購(gòu)買(mǎi)。同時(shí)可以掌握硬件設(shè)備的使用年限和使用人,對(duì)即將報(bào)廢和已報(bào)廢的設(shè)備進(jìn)行統(tǒng)計(jì)管理,實(shí)現(xiàn)了動(dòng)態(tài)監(jiān)管,提高了資產(chǎn)設(shè)備清查效率。
參考文獻(xiàn):
?。?王冉陽(yáng).基于Django和Python的Web開(kāi)發(fā).電腦編程技巧與維護(hù),2009(2): 56-58.
【2】 萬(wàn)發(fā)桃.實(shí)驗(yàn)室設(shè)備的管理與維護(hù).黑河學(xué)刊,2012(8):27-28.
【3】 陳劍明.實(shí)驗(yàn)室設(shè)備管理問(wèn)題的思考.中國(guó)科技縱橫,2013(9):250-250.