邱煜炎,盧小蝶,吳福生
(蚌埠醫學院衛生管理系,安徽蚌埠233000)
在互聯網時代飛快發展的浪潮之中,移動學習已經成為教育行業發展的必然趨勢。與傳統的課堂學習相比,移動學習可以使用戶隨時隨地根據自己安排進行知識獲取,從而激發學習興趣[1]。Python作為一門編程語言,語法簡潔優雅、兼容眾多平臺[2],并且具有豐富而強大的第三方庫,近年來隨著人工智能應用的廣泛普及,Python語言的熱度和影響力持續上升。為此,本文設計并實現了基于微信小程序的Python語言在線移動學習平臺,使用戶快速掌握Python編程語言,并提供自測練習及第三方庫的查閱接口,以滿足用戶隨時學習和方便使用的需要。
隨著移動互聯網的蓬勃發展,各種在線學習平臺不斷涌現,脫穎而出的有中國大學生慕課網、網易云課堂、學堂在線等。平臺發布及使用方式主要分為兩類:一類是基于CS架構,另一類是基于BS架構[3]。
CS架構,即客戶機-服務器(Client-Server)架構,該類平臺需要在手機端安裝專門的應用軟件與平臺進行交互。因此,龐雜的應用勢必耗費手機大量的硬件資源。BS架構,即瀏覽器-服務器(Browser-Server)架構,該類平臺依托手機端瀏覽器進行網頁發布,用戶雖然無須安裝應用軟件,但是各種在線學習平臺網址冗長、標簽收藏混亂,不方便用戶管理、查閱困難,用戶體驗效果不高。
微信是當前發展最為迅速、使用人數最多的社交應用手機軟件。微信小程序是一個基于微信客戶端構建的網頁版應用程序,它設計理念簡單,無須下載安裝即可使用,易于傳播,實現了應用程序“觸手可及”的目標[4]。
基于以上原因,本文設計了基于微信小程序的Python語言在線學習平臺,無須安裝軟件,不占用內存,方便管理,以達到用戶高效檢索、便捷學習的目的[5]。
本項目使用的是騰訊公司推出的微信開發者工具,其提供了完整的MINA框架[6]。MINA是一個網絡通信應用框架,主要分為兩個部分:頁面視圖層和應用邏輯層。其中,頁面視圖層進行界面的渲染,渲染部分由wxss和wxml文件共同構成,wxml用來設計頁面的結構,wxss用來設計頁面的樣式[7]。應用邏輯層有處理事務的功能,由Java Script實現邏輯交互、網絡請求、數據請求等功能[8]。視圖層和邏輯層利用系統層的JSBridge通信,視圖層將觸發的事件通知邏輯層進行數據處理;邏輯層把數據變化返回到視圖層,從而實現視圖層頁面更新,如圖1所示。

圖1 MINA框架
本文利用ThinkPHP框架實現服務器后臺業務邏輯功能。ThinkPHP是一種高效敏捷的Web框架,可以讓開發更關注具體業務邏輯實現,不需要關心程序的底層實現原理,提高程序的開發效率[9]。它基于PHP語言,采用MVC設計模式,即模型(Model)、視圖(View)和控制(Control)實現業務邏輯。框架已經構建好常用的功能類庫,以幫助構建穩定、快速、高效建立在線學習平臺系統;其次,該系統因為框架的使用使得本身的擴展性、靈活性、維護性、適應需求方面獲得最大化的增強。
Mysql數據庫是互聯網行業最流行的關系型數據庫管理系統,通過微信小程序開發者工具與數據庫連接實現系統的數據管理功能,在微信小程序開發者工具JS中編寫請求代碼,向數據庫發送數據請求,數據庫接收到數據請求后在數據庫中查詢到所需數據并返回給微信小程序的邏輯層,最終的數據通過視圖層顯示在微信小程序的界面。以獲取自測成績數據為例,微信小程序請求數據代碼和數據庫返回數據代碼如下:
請求數據代碼


本系統基于ThinkPHP框架的MVC開發模式,系統架構設計見圖2。程序運行流程是首先通過微信小程序打開Python語言在線學習平臺,進行授權操作,以獲取用戶的基本信息如頭像、用戶名等,如果拒絕授權將退出返回。用戶身份認證體系采用token令牌請求接口,微信小程序調用接口,經過數據驗證層,判斷參數是否合法,然后由Controller層訪問Model數據層,業務邏輯需要調用Server層里面的方法,最后由Model層訪問數據庫DB層,返回數據給小程序。Controller層主要進行請求的分發,Model層主要處理業務邏輯和訪問數據庫獲取數據,Server層主要進行業務代碼的封裝,為Controller層提供調用。
用戶模塊主要有3個功能,一是獲取微信用戶信息,二是獲取用戶學習進度,三是瀏覽收藏的第三方庫條目。通過微信小程序自帶的登錄認證體系獲取微信用戶信息,如圖3所示。

圖2 系統架構設計

圖3 用戶登錄界面
打開微信小程序,掃碼登錄之后,會顯示出微信小程序的首頁。微信小程序的界面主要是通過wxml和wxss來顯示的,對微信小程序來說,視圖層就是他們的集合,首頁是一個歡迎頁面,windows用來設定標題、背景、顏色等屬性,代碼為

此外,tarBar用來實現與其他功能頁面的銜接與跳轉。
視頻課程以章節目錄方式進行展示,用戶通過滑動列表進行點擊、選擇學習視頻,見圖4。章節界面代碼由wxml與wxss組成,wxml中使用swiper輪播圖組件實現圖片的動態變化,使用navigator實現章節的對應跳轉.wxss中設置了輪播圖和圖片的長、寬屬性,設置了button按鈕邊框、顏色以及view的屬性。
視頻播放界面主要由視頻跟內容簡介組成,簡介與視頻內容同步以方便用戶理解與記憶。視頻內容以wxml形式進行播放,文字簡介以text文本框進行展示,見圖5。視頻數據流通過微信小程序開發者工具與云存儲服務器建立連接,利用JavaScript腳本向服務器發送請求,當服務器接收到視頻請求后將相關視頻并返回給微信小程序的邏輯層,最終的視頻會通過視圖層顯示在微信小程序的界面。

圖4 課程目錄列表

圖5 視頻播放界面
自測模塊主要分為在線測試和成績解析兩部分。習題庫通過程序后臺管理端進行操作,題型涉及判斷、單選、多選和填空四類。題型、分值、題目及答案以數組形式構建數據結構,以單選題為例,其代碼為

前端利用微信小程序開發工具的wxml和wxss對習題界面進行布局與構造,見圖6。

圖6 習題界面
強大而易用的第三方庫,使Python語言在人工智能領域受到學界和工業界的強烈追捧。為方便用戶查詢,并能做到收集和掌握,平臺嵌入了Pyhton第三方庫匯總和查詢模塊。利用Python的Scrapy跟蹤github網站,并周期性抓取第三方庫資源列表以做到實時更新。抓取內容主要涉及庫名、簡介以及官網鏈接地址,此外,小程序界面通過JavaScript設置收藏功能,以方便用戶保存利用,代碼為

小程序發布的流程如圖7所示。

圖7 發布流程圖
首先在本地計算機設計完成系統的主要功能模塊的開發版本,然后,利用微信公眾平臺提交開發版本程序,當審核通過后就轉換成線上版本。用戶通過微信掃碼關注該小程序即可在線學習。
在服務器端,平臺采用阿里云服務器基于Linux內核的Centos7.0操作系統,并需要安裝配置相關支持軟件如PHP、Python、mysql和nginx等,代碼為


為檢驗平臺運行效果,需要進行相關系統評測,相關指標見表1。

表1 系統測試指標
當平臺通過以上一系列性能指標評測后,筆者邀請20名在校大學生進行用戶體驗測試。
參與者通過微信掃描二維碼登錄,使用學習平臺,并給出反饋意見。總體上說,用戶對該平臺的使用滿意度評價較高,體會到基于微信小程序的平臺學習Python編程語言帶來的新穎性和便利性。此外,評價的反饋缺陷主要體現在3方面,①平臺學習模塊單一,內容不夠豐富,不能滿足多層次用戶的知識需求;②界面不夠美觀,顏色搭配不合理,UI交互不夠友好;③用戶體驗不流暢,多并發條件下易出現卡頓現象。
隨著微信用戶體量的不斷增加,基于微信小程序無須下載即可使用的特點,本文設計并開發了基于微信小程序的Python語言在線學習平臺。實現了在線視頻學習、在線測試、Python第三方庫查詢收藏等功能,具有移動學習便利性的優勢。在以后的設計中,逐漸豐富學習平臺的功能,如增加學習社群、在線編譯等內容;優化設計界面,可參考優秀的小程序模板,對界面及按鈕等細節的顏色做合理搭配,以做到統一協調[10];后臺增加Redis緩存,已滿足多用戶并發訪問的需要。此外,要設置平臺安全機制,增加防火墻以及數據加密功能,以保證用戶數據不受侵犯。