張辛
摘要:人員基礎(chǔ)信息庫建設(shè)是實現(xiàn)高校紀(jì)檢監(jiān)督全覆蓋的重要基礎(chǔ)性工作,在綜合考慮保密性、經(jīng)濟(jì)性和效率性的基礎(chǔ)上,作者通過Django快速構(gòu)建了基于B/S結(jié)構(gòu)的信息采集系統(tǒng),實現(xiàn)了不同類型人員的信息采集需要。
Abstract: The construction of personnel basic information database is an important basic work to achieve the full coverage of discipline inspection and supervision in universities. Based on comprehensive consideration of confidentiality, economy, and efficiency, the author quickly built a B/S-based information collection system through Django to achieve the information collection needs of different types of personnel.
關(guān)鍵詞:Django;高校職工;信息采集系統(tǒng)
Key words: Django;university staff;information collection system
中圖分類號:TP311.52? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2019)36-0225-03
0? 引言
根據(jù)監(jiān)察法的要求,高校要實現(xiàn)監(jiān)察全覆蓋,實現(xiàn)全覆蓋的基礎(chǔ)工作就是建立起完善的人員信息庫。高校中不但管理崗的工作人員是監(jiān)察對象,而且一般教師在行使公權(quán)力的過程也是監(jiān)察對象,因此人員數(shù)據(jù)庫應(yīng)該是包含全體工作人員的數(shù)據(jù)庫。根據(jù)上級紀(jì)檢監(jiān)察機關(guān)的要求,人員信息的采集涉及到50多項內(nèi)容,而且多項內(nèi)容涉及到如身份證號、親屬姓名、出生日期等個人敏感信息,因保護(hù)信息的需要,不便于直接利用互聯(lián)網(wǎng)上提供的免費信息采集服務(wù)產(chǎn)品,同樣如果采用傳統(tǒng)的逐級下發(fā)電子表格或紙質(zhì)表格的方法,一方面也存在涉密風(fēng)險,另一方面存在工作量大、效率低的問題,而且在后期會產(chǎn)生一系列信息維護(hù)的問題。
現(xiàn)代信息技術(shù),特別是基于B/S的 web應(yīng)用開發(fā)技術(shù)為此類信息采集工作提供了良好的支持,一個典型的此類web應(yīng)用開發(fā)需要掌握前端語言、后臺開發(fā)技術(shù)、數(shù)據(jù)庫和服務(wù)器配置等四項基本技術(shù),而對于一個非專業(yè)人員充分掌握這四項技術(shù)存在一定困難。一些開發(fā)平臺較好的整合了上述技術(shù),使基本掌握這些技術(shù)的門檻大幅降低,目前較為流行的有PHP、J2EE、ASP.NET等Web開發(fā)平臺等,但是它們對開發(fā)者的編程基礎(chǔ)要求比較高,不利于現(xiàn)學(xué)現(xiàn)用,如果通過引進(jìn)專業(yè)開發(fā)人員或服務(wù)不僅增加了工作開展的周期也增加了成本。Django的出現(xiàn)解決了這一問題,它是一款基于Python語言的開源Web應(yīng)用框架,它邏輯簡明,操作簡單,以低成本、高擴展、高安全等特點和優(yōu)勢,被廣泛使用。因為這些特點Django框架也受到高校信息化建設(shè)的廣泛關(guān)注。
1? 技術(shù)可行性
Python 是一種流行的解釋型腳本語言。Python語言具有較簡單易學(xué)、免費開源、代碼可讀性強、豐富強大第三方庫和框架等特點。Django是Python中使用率最高的Web框架,它遵循MVC的軟件設(shè)計模式,MVC是模型(model)-視圖(view)-控制器(controller)的縮寫,通過這個模式可以快速、方便地開發(fā)出一個完整的Web應(yīng)用。Django框架的核心包括:簡易Web服務(wù)器、URL分發(fā)器、數(shù)據(jù)庫對象關(guān)系映射ORM框架、視圖系統(tǒng)和模板系統(tǒng)。簡易Web服務(wù)器只能用于本地開發(fā)階段接受HTTP請求。ORM框架用于建立數(shù)據(jù)模型與數(shù)據(jù)庫相映射,使開發(fā)者完全不用考慮不同數(shù)據(jù)庫的程序編寫問題,而且Django本身自帶sqlite輕型數(shù)據(jù)庫,滿足基本的數(shù)據(jù)管理任務(wù)。Django中的視圖系統(tǒng)和模板系統(tǒng)為用戶的交互和數(shù)據(jù)處理提供了方便的應(yīng)用框架。這些框架的設(shè)計極大地方便了應(yīng)用軟件的設(shè)計與開發(fā)。
基于MVC模式Django通過進(jìn)一步封裝控制層(Control)而形成了MTV設(shè)計模式,即模型M,模版T和視圖V。主要包括四個模塊:一是模型Models.py用于創(chuàng)建數(shù)據(jù)庫模型,二是視圖 Views.py是主要的功能模塊,負(fù)責(zé)業(yè)務(wù)邏輯處理和數(shù)據(jù)處理,三是模板Templates文件夾中的保存的模版文件,用于最終向用戶展示的網(wǎng)頁生成。四是路由關(guān)系url.py文件則用于定義整個系統(tǒng)或某個子模塊的路由表,指定了URL與views.py的映射關(guān)系。
2? 系統(tǒng)設(shè)計
高校人事工作十分復(fù)雜,用人關(guān)系也種類繁多,既有事業(yè)編制、人事代理等由學(xué)校正式聘用管理的人員,又有勞務(wù)派遣、臨時用工等由人力資源企業(yè)管理的人員。通過分析學(xué)校人事關(guān)系及已經(jīng)掌握的基本信息,可以將人員基本信息采集系統(tǒng)劃分為員工登錄模塊、特殊員工注冊模塊、信息采集模塊、管理模塊,如圖1所示。
員工驗證登錄模塊:一般學(xué)校人事部門對學(xué)校正式聘用管理的人員管理較為嚴(yán)格,原始信息較為完整,這一部分員工人數(shù)占總?cè)藬?shù)80%以上,可以通過人事處分配的統(tǒng)一工號及身份證號作為驗證信息登錄。
特殊員工注冊模塊:對于其它用工形式人員,人事部門沒有分配工號,也沒有掌握必要的個人信息,因此需要先注冊姓名和身份證號后,系統(tǒng)隨機分配一個臨時編號用于系統(tǒng)的登錄。
信息采集模塊:主要工作模塊,因采集項目較多,采用列表式逐項采集,其中姓名、編號(工號)、身份證等信息為不可編輯形式,有備選項時盡量采用下拉框選擇填寫,在模板中用html表單代替Django表單作為信息交互的方式,從而增加信息采集設(shè)置的靈活性。
管理模塊:主要用于管理員對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行管理。Django提供了一個簡易的管理程序,可以查看、增刪數(shù)據(jù)和表,通過增加導(dǎo)入導(dǎo)出庫,可以實現(xiàn)多種格式數(shù)據(jù)的導(dǎo)入導(dǎo)出。
3? 系統(tǒng)實現(xiàn)
3.1 新建工程和數(shù)據(jù)模型
新建工程:Django-admin startproject 工程名
新建應(yīng)用:python manage.py startapp 應(yīng)用名稱
系統(tǒng)啟動:python manage.py runserver
數(shù)據(jù)庫模型建立models.py文件中,創(chuàng)建數(shù)據(jù)表的類,因使用html表彰交換,因此其中大多數(shù)數(shù)據(jù)字段類型只需要使用CharField。在需要上傳照片的數(shù)據(jù)項中使用ImageField類型。照片文件保存的目錄地址在setting.py文件中設(shè)置,設(shè)置的代碼為MEDIA_ROOT= os.path.join(BASE_DIR, 'media').replace("\\", "/"),MEDIA_URL = '/media/'。在ImageField中upload_to參數(shù)用來設(shè)定文件傳輸保存的位置和文件名,在model文件中定義函數(shù)可以完成更改文件名和保存位置的功能,具體代碼如圖2。
在填寫表單時為防止機器人程序操作,可以加入簡單的驗證碼功能。首選在安裝captcha包,然后在form文件中引入,代碼為from captcha.fields import CaptchaField,在新建的類中加入如下語句,重寫的__init__函數(shù),可以將顯示的英文變成中文,更便于閱讀。最后在url.py文件中加入路徑url(r'^captcha/', include('captcha.urls')),在setting文件中注冊應(yīng)用“captcha”。(圖3)
3.2 數(shù)據(jù)的導(dǎo)入與導(dǎo)出
Django-import-export是一款專門為Django開發(fā)的導(dǎo)入導(dǎo)出模塊,安裝后既可以在頁面中設(shè)置輸入輸出的功能也可以在通用管理界面中加入導(dǎo)入導(dǎo)出的功能,并且支持CVS、EXCEL、JASON等常見的數(shù)據(jù)格式。在這里主要介紹快速在通用管理界面中加入導(dǎo)入導(dǎo)出的功能。安裝模塊后在admin.py文件中導(dǎo)入四個模塊,import_export.admin、 ImportExportModelAdmin、Django.contrib中的admin,import_export中的resources。然后創(chuàng)建兩個類,代碼如圖4。
最后注冊需要在通用管理頁面管理的模型,代碼為:admin.site.register(Basic_info,BasicInfoAdmin),特別注意要把上一步中創(chuàng)建的第二個類也要注冊進(jìn)去,就可以在管理業(yè)面中顯示出導(dǎo)入導(dǎo)出功能。
3.3 視圖文件views中的主要命令
在前端中主要通過post方法獲取用戶提交的數(shù)據(jù),在視圖文件中通過request.POST[‘表單字段name值]命令獲取用戶提交的數(shù)據(jù)。在模板中,表單中的屬性name的值與數(shù)據(jù)模型中的中的字段名稱一一對應(yīng),保存時就可以寫入數(shù)據(jù)庫相應(yīng)內(nèi)容。在視圖文件中主要注意重復(fù)身份證號和隨機人員編號重復(fù)性的驗證,上傳文件大小的要求驗證以及其需要驗證的內(nèi)容。
3.4 在windows操作系統(tǒng)中部署網(wǎng)站
Django在window服務(wù)器及IIS中的部署:
首先通過windows安裝程度安裝IIS和CGI,其次安裝python及項目中使用的所有庫,這里特別提示如果安裝的庫不全可能會出現(xiàn)很多奇怪的錯誤而使程序無法運行,常規(guī)辦法是通過pip freeze > requirements.txt命令導(dǎo)出項目需要的包,然后在服務(wù)器中安裝這些包,命令為pip install -r requirement.txt。然后在安裝wfastcgi pip install wfastcgi,啟動wfastcgi-enable,啟動后會顯示Python路徑和wfastcgi路徑。將此路徑填加到iis中的fastcgi設(shè)置中就可以運行服務(wù)器了。
4? 小結(jié)
系統(tǒng)的建立基本實現(xiàn)了穩(wěn)定采集員工數(shù)據(jù)的目的,基本克服了利用商業(yè)軟件的保密問題和傳統(tǒng)信息采集的效率問題,開發(fā)過程體現(xiàn)了Django快捷、高效、易上手的特點,從部署以后運行的效果看,系統(tǒng)穩(wěn)定、安全、可擴展性強、適用性廣泛。在此基礎(chǔ)上可以進(jìn)一步完善形成人事結(jié)構(gòu)分析系統(tǒng)和員工檔案系統(tǒng)。
參考文獻(xiàn):
[1]劉洋.基于Django框架的運動會管理系統(tǒng)的應(yīng)用研究[J].技術(shù)與教育,2019,33(02):15-18,61.
[2]陳鐳,張凡龍.基于Django的高校人才引進(jìn)系統(tǒng)設(shè)計與實現(xiàn)[J].計算機時代,2019(07):40-42.
[3]何方園.基于Web的高校人事管理系統(tǒng)的設(shè)計與實現(xiàn)[D].吉林大學(xué),2015.