王博 鮑玉薇 石家莊信息工程職業(yè)學院
隨著網絡在社會生產、生活中的應用越來越廣泛,程序在網絡中傳輸數據是一項重要的功能需求,在程序設計課程的教學中,網絡功能模塊的學習顯得尤為重要。通常一個具有網絡功能的程序數據傳輸的過程是一個客戶端程序Client 與一個服務端程序Server 進行相互的數據發(fā)送與接收。對于剛開始學習網絡功能的初學者來說,同時學習客戶端與服務端的網絡功能實現難度會更大,且容易引起知識思維上的混亂,因此在傳統(tǒng)教學中,首先是從客戶端程序Client 入手,與服務端通信,第二階段是學習服務端Server 的程序編寫方法。在第一階段需要一個可同時為多個課程提供快速應用的服務端方案。
TreeFrog 框架基于C++和QT,是一個全棧高速網頁框架,具有高速優(yōu)化的C++引擎,使用O/R 映射,簡化數據庫操作,支持多種數據庫。
TreeFrog 框架不同于其他應用框架,可實現一個工程項目的快速搭建,其他框架的思路是提供一套API。
生成器用于快速生成應用程序骨架,包括控制器、模型、視圖、工具類、配置文件、數據庫存儲目錄、靜態(tài)頁面目錄、腳本目錄等,這些內容組成了一個服務端項目的全部所需內容。生成器可用于一次性生成控制器、模型、視圖等功能模塊,項目骨架生成后,可單獨生成需要的控制器、模型等功能模塊。
控制器用于響應客戶端的響應,通過定義Action 控制器可以區(qū)分客戶端的請求內容。TreeFrog 是全棧解決方案,可提供服務、數據、頁面等完整功能。
模型是一個對象,TreeFrog 中模型功能可生成對應數據表的模型類。通過模型可以根據數據表生成對應的對象類及常用的CRUD 方法,簡化數據庫的訪問,對于復雜的數據庫操作也可通過SQL 語句完成。
根據教學內容需求,以教學案例注冊登錄界面為例,需要存儲與查詢用戶名與密碼,首先生成整個項目的骨架Skeleton,服務端的TreeFrog 控制器對應方法,loginAction用于查詢注冊信息,registAction 用于存儲注冊信息,根據數據庫中的數據表,生成應用架構Scaffold,Scaffold 包括控制器,模型,視圖源文件。
在TreeFrog 命令窗口中使用“tspawn new tserver”生成項目骨架,tserver 作為項目名稱,同時創(chuàng)建項目名稱為根目錄的目錄樹,修改config 目錄下的database.ini 配置文件,數據庫使用SQLite,修改driverType=QSQLITE,databaseName=db/tsdb。在數據庫中創(chuàng)建users 數據表,字段為id INTEGER AUTO_INCREMENT PRIMARY KEY,uname VARCHAR(30),pwd VARCHAR(30)。
在TreeFrog 命令窗口中使用“tspawn controller LoginCheck login registNew”生成控制器,LoginCheck 是控制器名稱,將會生成LoginCheckController 類,login 和registNew 是TreeFrog 中的兩個Action,對應LoginCheck Controller 類中的兩個方法,分別用于登錄時用戶名與密碼的檢測以及注冊新用戶時對數據庫添加數據的操作。
在TreeFrog 命令窗口中使用“tspawn model users”生成模型,users 是數據表的名稱,將會生成usersobject 作為users 類的定義,可使用其中的屬性id、uname、pwd 作為與數據庫對應字段的三個屬性,同時生成users類,該類中自動生成create、update、save、remove、get 方法,可實現數據庫中CRUD操作。
客戶端訪問控制器通過/LoginCheck/login方式登錄,通過/LoginCheck/registNew 方式注冊新,分別調用TreeFrog 項目LoginCheck Controller 類中l(wèi)ogin 與registNew 方法,通過httpRequest().formItemValue("userinfo")獲取客戶端發(fā)送過來的信息,約定使用json格式發(fā)送,提取用戶名與密碼存儲為QString類型,調用模型中的方法getAll()讀取數據庫的用戶信息,存儲為QList
使用TreeFrog 提供的renderJson(jsonObj)將確認信息發(fā)送給客戶端。在registNew 方法中使用同樣的遍歷方法查看用戶名是否已經存在,不存在可注冊。
本文通過分析TreeFrog 功能特點,確定了TreeFrog 的功能應用可用于程序設計課程網絡模塊教學中,并且能夠根據不同教學案例需求,快速實現相應功能,相較傳統(tǒng)的教學案例制作方法更加高效,同時可為TreeFrog 服務器搭建提供應用參考。