国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Wagtail的校園信息分享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2018-09-29 02:38:04劉奇燦

劉奇燦

摘 要:為了更好的將分散碎片的校園信息集中整合服務(wù)于師生,提出了一種網(wǎng)絡(luò)環(huán)境下的校園信息分享系統(tǒng)。該系統(tǒng)采用Wagtail開源框架,信息檢索則擴(kuò)展了Wagtail內(nèi)置搜索功能,分享的結(jié)果以圖表的方式直觀地反饋給用戶,從而實(shí)現(xiàn)了對(duì)校園信息有效管理和分享等功能。

關(guān)鍵詞:校園信息; 分享系統(tǒng); Wagtail; Django

Abstract: In order to better integrate the fragmentary campus information for serving teachers and students, campus information sharing system is proposed under a network environment. It uses Wagtail open source framework, extends built-in search function, gives sharing feedback intuitively to the user in a graphical way and realizes the effective management and transmission of campus information, etc.

Key words: campus information; sharing system; Wagtail; Django

引言

在高速發(fā)展的信息時(shí)代,高校各類校園學(xué)生事務(wù)信息紛亂繁冗,極不利于高校學(xué)生有效地汲取相關(guān)內(nèi)容。將分散碎片的學(xué)生事務(wù)信息通過(guò)統(tǒng)一的平臺(tái)進(jìn)行整理和發(fā)布能夠更有效地反饋給學(xué)生。迄今為止國(guó)內(nèi)廣大高校對(duì)學(xué)生事務(wù)信息[1]整合還沒(méi)有較成熟的方案。以陜西師范大學(xué)為例,人們將雜亂而無(wú)序的學(xué)生事務(wù)信息,如:學(xué)生學(xué)業(yè)輔導(dǎo)、學(xué)生社團(tuán)活動(dòng)詳情、學(xué)生業(yè)務(wù)辦理信息等等,進(jìn)行有效地整理,使學(xué)生事務(wù)信息更有效、更便捷地服務(wù)師生。既節(jié)省人力、物力,又提高工作效率,也組成了一個(gè)執(zhí)行有序、體系龐大、結(jié)構(gòu)多樣、關(guān)系復(fù)雜、功能全面的信息平臺(tái),實(shí)現(xiàn)了各個(gè)相互獨(dú)立的信息資源庫(kù)之間的相互協(xié)調(diào)和有效導(dǎo)航,實(shí)現(xiàn)了信息的共享與集成。

同時(shí),網(wǎng)絡(luò)信息技術(shù)的發(fā)展使網(wǎng)頁(yè)編寫語(yǔ)言發(fā)展迅速,Wagtail框架是基于Python的Django框架[2],具有平臺(tái)獨(dú)立性、友好性、擴(kuò)展性等特性。使其在國(guó)外許多慈善機(jī)構(gòu)、大學(xué)和公共部門組織的網(wǎng)絡(luò)平臺(tái)深受歡迎。Wagtail框架遵循MTV開發(fā)模式,內(nèi)置豐富的Web開發(fā)控件,集成了一個(gè)輕量級(jí)Web Server,可以使開發(fā)人員方便高效建立靈活多樣的應(yīng)用。

本文基于Wagtail的校園信息分享系統(tǒng),以強(qiáng)大的開源框架和MTV模式為支持,通過(guò)B/S模式實(shí)現(xiàn)了用戶分級(jí)管理功能、信息內(nèi)容管理功能和文件資源分享管理等功能。

1 Wagtail框架概述

Wagtail是一個(gè)開源的,使用Python和Django框架構(gòu)建的強(qiáng)大的Web應(yīng)用框架。采用MTV的軟件設(shè)計(jì)模式,即模型M(負(fù)責(zé)業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)的對(duì)象)、模版T(負(fù)責(zé)前端展示給用戶)、視圖V(負(fù)責(zé)業(yè)務(wù)邏輯)。Wagtail框架的主要特點(diǎn)。

(1)建立于Python的基礎(chǔ)上具有強(qiáng)大的應(yīng)用可擴(kuò)展性、平臺(tái)無(wú)關(guān)性,擁有豐富的第三方模塊。

(2)開發(fā)于Django框架上具有Django的全部高性能核心:面向?qū)ο笥成淦鱗3],基于正則的URL路由分發(fā)器和可擴(kuò)展模板系統(tǒng)等。

(3)基于典型的MVC框架的MTV設(shè)計(jì)模式,各組件都是低耦合的。每個(gè)APP應(yīng)用均可獨(dú)立更改而不影響到其它的部分。MTV模式如圖1所示。

(4) Wagtail框架擁有豐富的、易快速二次開發(fā)的內(nèi)置資源管理功能和內(nèi)容豐富的文本編輯功能等。

(5)支持多種數(shù)據(jù)庫(kù)[4]:如Postgresql、MySql、SQLite和Oracle等數(shù)據(jù)庫(kù)。

2 需求分析

當(dāng)前校園各類學(xué)生事務(wù)信息紛亂繁冗,充斥在校園生活的每個(gè)角落。有些信息重要但是零碎,有時(shí)需要某些校園學(xué)生信息又不知道在哪里可汲取相關(guān)正規(guī)內(nèi)容。由于現(xiàn)在隨時(shí)隨地使用手機(jī)瀏覽器非常便捷,因此研究人員使用Web開發(fā)技術(shù),借助校園執(zhí)行力可信度高的學(xué)生組織,快速開發(fā)出一套基于Wagtail的校園信息分享系統(tǒng)。系統(tǒng)主要功能。

(1)用戶分級(jí)管理功能。系統(tǒng)提供了用戶登陸、注冊(cè)與注銷的功能,并對(duì)用戶進(jìn)行了分級(jí)管理。以實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)安全性即用戶和管理員隱私的保護(hù)。普通用戶可快速搜索查看所需信息內(nèi)容。對(duì)管理員用戶,系統(tǒng)則可以提供強(qiáng)大和靈活的內(nèi)容編輯器,并提供其它數(shù)據(jù)或權(quán)限的操作功能。

(2)信息內(nèi)容管理功能。該功能包括信息內(nèi)容或頁(yè)面的添加、編輯、刪除、優(yōu)化、發(fā)布、狀態(tài)轉(zhuǎn)換、規(guī)約等操作步驟。系統(tǒng)管理員將整理過(guò)的信息內(nèi)容導(dǎo)入信息平臺(tái)中,處理的結(jié)果可以迅速以圖表的方式呈現(xiàn)出來(lái),從而給用戶良好的直觀感受。

(3)文件資源分享管理功能。該功能專門提供給系統(tǒng)管理員使用。提供各類文件(txt、doc、excel、ppt等)、圖像、音樂(lè)、視頻的后臺(tái)上傳接口,資源統(tǒng)一在此處集成管理,更有助于信息內(nèi)容以優(yōu)化的多樣化優(yōu)化的形式進(jìn)行管理。

3 系統(tǒng)設(shè)計(jì)

目前,校園各類信息龐雜無(wú)序、內(nèi)容分散、流動(dòng)性強(qiáng)且無(wú)法找到傳統(tǒng)紙質(zhì)版的文件,統(tǒng)一集成難度極大。為了進(jìn)一步保證系統(tǒng)信息內(nèi)容的高度有效、真實(shí)可靠性,系統(tǒng)上線前期采用PGC(專家生產(chǎn)內(nèi)容)模式,借助校園執(zhí)行力可信度高的學(xué)生組織提供強(qiáng)有力的支持。

3.1 系統(tǒng)業(yè)務(wù)流程

校園學(xué)生事務(wù)信息繁多,可以采取分類方法進(jìn)行問(wèn)題規(guī)模的縮減,系統(tǒng)采取兩級(jí)管理模式,即校園信息管理員和校區(qū)信息模塊管理員。下面分別以普通學(xué)生用戶和管理員的業(yè)務(wù)流程做一簡(jiǎn)介。

普通學(xué)生用戶進(jìn)入分享系統(tǒng)首頁(yè),可選擇感興趣的模塊進(jìn)行瀏覽,或者直接選擇咨詢臺(tái)模塊。點(diǎn)擊進(jìn)入搜索欄并輸入問(wèn)題的關(guān)鍵字,系統(tǒng)自動(dòng)關(guān)鍵字匹配,結(jié)果以圖文并茂的形式反饋給用戶。管理員登錄系統(tǒng)后臺(tái),系統(tǒng)根據(jù)用戶名而識(shí)別管理員權(quán)限并提供不同的系統(tǒng)操作功能。進(jìn)入后管理員選擇自己需要編輯的欄目進(jìn)行相應(yīng)的編輯優(yōu)化等操作。管理員、普通用戶功能結(jié)構(gòu)如圖2、圖3所示。

3.2 系統(tǒng)總體架構(gòu)

分層是現(xiàn)代軟件系統(tǒng)的基本架構(gòu),通過(guò)分層有利于系統(tǒng)的維護(hù)和升級(jí)。本系統(tǒng)也采用分層思想進(jìn)行設(shè)計(jì),充分考慮了未來(lái)擴(kuò)展的可能性。系統(tǒng)結(jié)構(gòu)表示層結(jié)合了purecss開源框架。業(yè)務(wù)邏輯層則結(jié)合了Wagtail開源框架。

3.3 系統(tǒng)特色

(1)實(shí)現(xiàn)將各類校園學(xué)生事務(wù)信息問(wèn)題匯總管理在線上統(tǒng)一集成管理,真正實(shí)現(xiàn)了校園有不懂的問(wèn)題可以到校園學(xué)生信息分享系統(tǒng)查找。

(2)詳盡完備的問(wèn)題查詢搜索功能,充分解決人工查找的滯后性,如有需要通過(guò)此系統(tǒng)關(guān)鍵詞查詢便可查看詳細(xì)信息。

(3)提升系統(tǒng)數(shù)據(jù)庫(kù)的安全性,采用具有攻防性的登錄身份權(quán)限認(rèn)證機(jī)制,大大降低系統(tǒng)被攻擊的可能性,確保系統(tǒng)的安全。

4 系統(tǒng)實(shí)現(xiàn)

系統(tǒng)基于Wagtail的開發(fā)實(shí)現(xiàn)主要分為3個(gè)模塊:數(shù)據(jù)模型創(chuàng)建( 核心)、項(xiàng)目模板構(gòu)建和自定義搜索模塊。項(xiàng)目模板構(gòu)建模塊是和用戶直接交互的,用戶可以通過(guò)Web頁(yè)面進(jìn)行一系列的操作。

4.1 數(shù)據(jù)模型創(chuàng)建

基于Django的Wagtail 應(yīng)用可以通過(guò)Django 框架提供的API 操作不同的數(shù)據(jù)庫(kù)引擎,進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建和遷移。同時(shí),Wagtail借助ORM(對(duì)象映射)的技術(shù)核心,用類的定義描述表的字段,并將類存放到models.py 中,形成MTV 模式中數(shù)據(jù)模型(Model)部分,大大提高數(shù)據(jù)庫(kù)驅(qū)動(dòng)網(wǎng)站的優(yōu)越性。

考慮到校園信息分享系統(tǒng)的規(guī)模,采用的數(shù)據(jù)庫(kù)為SQLite類型。其訪問(wèn)速度較快,屬輕量級(jí)的數(shù)據(jù)庫(kù),支持多種操作系統(tǒng),占用資源低。SQLite使用本地文件作為存儲(chǔ)介質(zhì),并且用原生的文件系統(tǒng)權(quán)限來(lái)訪問(wèn)和控制。適合大量的用戶進(jìn)行并發(fā)查詢搜索。

數(shù)據(jù)模型定義后, 在命令提示符下將當(dāng)前路徑轉(zhuǎn)到項(xiàng)目路徑。然后執(zhí)行manage.py migrate 和python manger.py makemigrations命令,就可以在數(shù)據(jù)庫(kù)中生成相應(yīng)表。

4.2 項(xiàng)目模板構(gòu)建

由于開源框架具有文檔充實(shí)、可伸縮、源代碼公布、可靠等優(yōu)點(diǎn)[5],為了最大限度降低風(fēng)險(xiǎn),提高質(zhì)量和大幅度節(jié)省時(shí)間,系統(tǒng)項(xiàng)目模板構(gòu)建運(yùn)用了成熟的開源框架,并對(duì)開源框架進(jìn)行擴(kuò)展和定制。

項(xiàng)目模板構(gòu)建系統(tǒng)引用了輕量美觀的purecss框架。有一系列集成的layouts供系統(tǒng)使用,且具有輕量級(jí)、響應(yīng)式的特點(diǎn)。前后臺(tái)交互渲染過(guò)程中使用Wagtail的static標(biāo)簽引用。對(duì)整個(gè)項(xiàng)目而言,模板對(duì)應(yīng)的頁(yè)面模型處于其上下文環(huán)境,在模板中可以直接引用到該頁(yè)面模型中的所有元素和間接調(diào)用該頁(yè)面模型的子模型或者父模型,然后按照頁(yè)面排版將元素填充進(jìn)去。

其中模板語(yǔ)言會(huì)對(duì)HTML標(biāo)簽和JS等語(yǔ)法標(biāo)簽進(jìn)行自動(dòng)轉(zhuǎn)義,上線后有利于項(xiàng)目的安全性。項(xiàng)目可以對(duì)工程公共部分進(jìn)行重載,僅對(duì)頁(yè)面部分進(jìn)行修改(比如主頁(yè))再使用繼承,避免大量重復(fù)代碼,降低冗余性。

管理員進(jìn)入校園信息分享系統(tǒng)后臺(tái),可選擇需要修改的欄目。界面效果如圖4所示。普通學(xué)生用戶進(jìn)入首頁(yè)選擇自己關(guān)注的欄目進(jìn)行相關(guān)查詢操作。普通用戶首頁(yè)如圖5所示。

4.3 自定義搜索模塊

Wagtail不僅提供了一個(gè)全面可擴(kuò)展的搜索應(yīng)用,也提供了一個(gè)快捷方式search()和QuerySet方法。自定義數(shù)據(jù)模型[6]可以通過(guò) search方法在搜索后臺(tái)直接查詢。

以自定義查詢Message類的實(shí)例對(duì)象中通過(guò)關(guān)鍵字“Student”搜索實(shí)例對(duì)象The excellent Student為例,其代碼如下:

>>>from myapp.models import Message

>>>from wagtail.wagtailsearch.backends

import get_search_backend# Search Messages

>>> s=get_search_backend()

>>> s.search("Student",Message)

>>>[, ]

5 結(jié)束語(yǔ)

采用基于Wagtail框架開發(fā),不僅大大推進(jìn)了構(gòu)建動(dòng)態(tài)系統(tǒng)的開發(fā)流程,而且降低了客戶端的負(fù)載,結(jié)構(gòu)簡(jiǎn)單、組織清晰。目前校園信息分享系統(tǒng)上線前期已取得一定的反響,成功匯總大約三萬(wàn)字的校園學(xué)生事務(wù)信息問(wèn)題詳情,為師生提供了問(wèn)題解答幫助。由于系統(tǒng)的局限性仍很大,還不能夠有效地自動(dòng)獲取校園內(nèi)各官網(wǎng)公布的消息。所以未來(lái)分享系統(tǒng)的“一個(gè)中心+N個(gè)領(lǐng)域”的戰(zhàn)略模式:搭建專業(yè)全面的校園學(xué)生事務(wù)信息系統(tǒng),立足于及時(shí)、準(zhǔn)確地提供最新、最權(quán)威、最豐富的信息咨詢。

參考文獻(xiàn)

[1] 毛佳,胡勇,閻覃,等. 高校社團(tuán)服務(wù)平臺(tái)的設(shè)計(jì)與開發(fā)[J]. 電子技術(shù)與軟件工程,2017(12):44-45.

[2] 張良均,王路,譚立云,等. Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)[M]. 北京:機(jī)械工業(yè)出版社,2015.

[3] 陳紅茜, 孟超英, 邱小彬, 等. 基于Django的高校合同制人員管理系統(tǒng)[J]. 華東師范大學(xué)學(xué)報(bào) (自然科學(xué)版) , 2015 (S1) :464-470.

[4] 魏笑笑,王小正,王圣滔,等. 基于Spark 的校園信息分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件,2017,38(10):94-99.

[5] 董海蘭. 基于Python的非結(jié)構(gòu)化數(shù)據(jù)檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 南京:南京郵電大學(xué),2017.

[6] 濮文強(qiáng),曹磊,夏斌. 基于Django框架的關(guān)鍵詞排名監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用,2017,36(20):97-100.

[7] 邵娟,陳麗. 中美高校學(xué)生事務(wù)管理比較研究的啟示與思考[J]. 高教論壇,2017(1):125-128.

临洮县| 东宁县| 固始县| 南木林县| 黔西县| 英德市| 托克托县| 西盟| 郧西县| 营口市| 拜泉县| 开远市| 沙河市| 新巴尔虎左旗| 叶城县| 阜城县| 高密市| 韩城市| 明星| 辉南县| 福鼎市| 武川县| 沙田区| 泌阳县| 萝北县| 纳雍县| 永嘉县| 尼玛县| 佳木斯市| 新竹县| 宜宾县| 阳西县| 娄烦县| 吉首市| 化德县| 来安县| 福泉市| 湾仔区| 闽清县| 缙云县| 克山县|