日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Revel教程:Revel 概念

Revel 從Rails 和 Play! 中吸收了許多成熟的設(shè)計思想, 許多相同的思想被用到了框架的設(shè)計和接口中。

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務。我雖然不認識你,你也不認識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有王屋免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Revel 通過簡單的約定來支持 MVC 設(shè)計模式,輕量、開發(fā)效率高。

MVC

  • 模型 描述基本的數(shù)據(jù)對象,特定的查詢和更新邏輯。
  • 視圖 一些模板,用于將數(shù)據(jù)呈現(xiàn)給用戶。
  • 控制器 執(zhí)行用戶的請求,準備用戶所需的數(shù)據(jù),并指定模板進行渲染。

一些不錯的MVC結(jié)構(gòu)概述,像 Play! 框架 與Revel框架完全匹配。

請求的生命周期

下面是一個請求處理的基本流程:

概要:

  • Revel 暴漏一個單獨的 http.Handler, 負責實例化控制器 (請求的上下文),并沿著過濾器鏈傳遞請求。
  • Filters 鏈接到一個請求處理鏈,由水平相關(guān)的功能組成,比如請求記錄,cookie策略,授權(quán)等。大部分內(nèi)建功能都是由過濾器實現(xiàn)的。
  • Actions 是處理用戶輸入和產(chǎn)生請求結(jié)果的的函數(shù)。

HTTP Handler

Revel 構(gòu)建自頂級 Go HTTP server, 他為每一個到來的請求創(chuàng)建一個 go-routine (輕量線程),用于處理并發(fā)。

Revel什么也不做,只是把請求交給過濾器鏈處理,完成之后,將結(jié)果寫到響應中。

默認情況下, Revel 處理程序注冊到 "/" 接受所有的請求連接。然而, 應用程序可以自由的重寫此行為 – 例如, 可以使用現(xiàn)有的 http.Handlers 而不是Revel來重新實現(xiàn)此功能。具體請參考 FAQ。

過濾器

過濾器 實現(xiàn)了Revel的大部分請求處理功能,過濾器有一個簡單的易于嵌套的接口。

“過濾器鏈” 是一個函數(shù)數(shù)組, 每一個都會去執(zhí)行下一個,直到最后一個過濾器執(zhí)行了控制器方法。例如, 過濾器鏈中的第一個過濾器是 RouterFilter, 它決定哪個操作接受請求并保存到控制器。

總之, 過濾器和過濾器鏈就像機架一樣。

控制器和方法

每一個 HTTP 請求,執(zhí)行一個 action, 處理請求并寫入響應。 相關(guān)的 actions 被分組到 controllers中. Controller 類型包含相關(guān)字段和方法,作為每個請求的上下文。

作為 HTTP 請求處理的一部分,Revel 實例化你的控制器,并設(shè)置嵌入revel.Controller的所有的屬性。 Revel 不在請求之間共享實例。

Controller 是直接 或 間接嵌入 *revel.Controller 的一個struct。

type AppController struct {
  *revel.Controller
}

Action 是 Controller 的方法。符合下面的條件:

  • 名稱是導出的(首字母大寫)
  • 返回 revel.Result 類型

例如:

func (c AppController) ShowLogin(username string) revel.Result {
    ..
    return c.Render(username)
}

程序調(diào)用 revel.Controller.Render 渲染一個模板, 傳遞給模板一個username參數(shù)。revel.Controller 有許多方法處理revel.Result, 程序也可以自己創(chuàng)建處理方法。

Results

Result 符合下面的接口:

type Result interface {
    Apply(req *Request, resp *Response)
}

通常, 什么也不響應,直到 action 和所有的過濾器返回。此時,Revel寫入響應的headers和cookies。(例如設(shè)置會話cookie), 然后調(diào)用 Result.Apply 寫入實際響應內(nèi)容。


分享文章:創(chuàng)新互聯(lián)Revel教程:Revel 概念
網(wǎng)站URL:http://www.5511xx.com/article/dpphpeo.html