• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2018-09-29 02:38劉奇燦
      智能計算機(jī)與應(yīng)用 2018年4期

      劉奇燦

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

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

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

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

      1 Wagtail框架概述

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

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

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

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

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

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

      2 需求分析

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

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

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

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

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

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

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

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

      普通學(xué)生用戶進(jìn)入分享系統(tǒng)首頁,可選擇感興趣的模塊進(jìn)行瀏覽,或者直接選擇咨詢臺模塊。點擊進(jìn)入搜索欄并輸入問題的關(guān)鍵字,系統(tǒng)自動關(guān)鍵字匹配,結(jié)果以圖文并茂的形式反饋給用戶。管理員登錄系統(tǒng)后臺,系統(tǒng)根據(jù)用戶名而識別管理員權(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),通過分層有利于系統(tǒng)的維護(hù)和升級。本系統(tǒng)也采用分層思想進(jìn)行設(shè)計,充分考慮了未來擴(kuò)展的可能性。系統(tǒng)結(jié)構(gòu)表示層結(jié)合了purecss開源框架。業(yè)務(wù)邏輯層則結(jié)合了Wagtail開源框架。

      3.3 系統(tǒng)特色

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      4.3 自定義搜索模塊

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

      以自定義查詢Message類的實例對象中通過關(guān)鍵字“Student”搜索實例對象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é)束語

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

      參考文獻(xiàn)

      [1] 毛佳,胡勇,閻覃,等. 高校社團(tuán)服務(wù)平臺的設(shè)計與開發(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é)報 (自然科學(xué)版) , 2015 (S1) :464-470.

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

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

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

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

      新田县| 太白县| 巴林左旗| 锡林浩特市| 章丘市| 奉节县| 麦盖提县| 汨罗市| 华宁县| 德兴市| 贵港市| 威远县| 唐河县| 乌拉特中旗| 修武县| 巴东县| 蓬安县| 大英县| 社会| 西宁市| 吴堡县| 桂阳县| 靖宇县| 阿拉善右旗| 柳州市| 长武县| 瓦房店市| 长子县| 湟中县| 徐汇区| 靖江市| 神农架林区| 延吉市| 五寨县| 东台市| 汝城县| 洛宁县| 斗六市| 吉安县| 灵石县| 南投县|