在iris框架中,封裝了mvc包作為對mvc架構的支援,方便開發者遵循mvc的開發原則進行開發。
iris框架支援請求資料、模型、持久資料分層處理,並支援各層級模組**繫結執行。
mvc即:model、view、controller三個部分,分別代表資料層、檢視層、控制層。控制器層負責完成頁面邏輯、實體層負責完成資料準備與資料操作、檢視層負責展現ui效果。
在iris框架中,用一張圖表示前端請求、服務端處理請求、服務端返回資料到前端的請求過程圖,描述如下:
iris.mvc特性
iris框架封裝的mvc包,支援所有的http方法。比如,如果想要提供get,那麼控制器應該有乙個名為get()的函式,開發者可以定義多個方法函式在同乙個controller中提供。這裡的get、post方法是指的直接和八種請求型別同名的方法,mvc模組會自動執行到get()、post()等八種對應的方法。如下所示:
//自定義的控制器根據請求型別和請求url自動匹配處理方法type customcontroller struct{}
//註冊自定義控制器處理請求
//自動處理基礎的http請求
//type:get請求
}
在iris框架中的mvc設計包中,設定了自定義的控制器以後,支援根據請求型別和對應的url自動匹配對應的處理方法。具體案例如下:
* type:get請求
如上案例,當我們發起請求時,iris框架就能夠自動匹配對應的控制器的處理方法。除了上述get和post兩個方法之外,http請求的八種型別中的其他請求型別,也支援自動匹配。
beforeactivation方法
在通過configure和handle進行了自定義controller繫結以後,就可以使用自己自定義的controller來進行自定義處理處理請求方法。開發者可以在beforeactivation方法中來處理請求定義。如下所示,我們給出案例說明:
func (m *customcontroller) beforeactivation(a mvc.beforeactivation)使用mvc.configure配置路由組和控制器//對應處理請求的方法
func (m *customcontroller) queryinfo() mvc.result
mvc.handle(new(usercontroller))
})本節課中我們學習了mvc包中控制器極其處理方法的基本用法,在實戰專案中,我們會在本節課學習內容的基礎上,繼續深入學習更詳細的操作。
Go語言實戰 revel框架教程之許可權控制
乙個站點上面最基本都會有三種使用者角色,未登入使用者 已登入使用者和管理員。這一次我們就來看看在revel框架下如何進行許可權控制。因為revel是mvc結構的,每乙個url其實都會對映到乙個具體的controller.action上面,所以許可權控制落到實處就是對action的訪問進行控制。那麼思...
區塊鏈系列教程之 位元幣中的共識
目錄總結 在位元幣的p2p網路中是怎麼達成共識的呢?達成共識需要做哪些交易的校驗呢?交易和區塊是怎麼傳播到整個區塊鏈網路的呢?看完這篇文章你就明白了。之前我在講分布式系統的時候有講過分布式系統的幾個共識演算法,包括raft,paxos和拜占庭容錯演算法。位元幣的共識和之前講的都不同,它使用的是工作量...
Go語言實戰 revel框架教程之快取和Job
所有的 應該都會有乙個非常簡單的需求,首頁一秒之內開啟。滿足的方式主要有兩種 資料記憶體化,把常用的資料全都放到記憶體,定期分批寫入硬碟。相比靜態頁面,這個方法對cpu的要求稍高。好處就不細說了,動態網頁的好處相比大家都耳熟能詳了。山坡網選擇了第二種方案,資料記憶體化。revel本身提供了cache...