真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

go語言開發(fā)框架 go語言開發(fā)框架是什么

go語言的webengine叫什么

Java教程

創(chuàng)新互聯的客戶來自各行各業(yè),為了共同目標,我們在工作上密切配合,從創(chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對我們的要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。專業(yè)領域包括成都網站制作、成都網站建設、外貿營銷網站建設、電商網站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā)。

Linux入門

更多

首頁

?

Go語言WEB框架(Gin)詳解

在 Go語言開發(fā)的 Web 框架中,有兩款著名 Web 框架分別是 Martini 和 Gin,兩款 Web 框架相比較的話,Gin 自己說它比 Martini 要強很多。

Gin 是 Go語言寫的一個 web 框架,它具有運行速度快,分組的路由器,良好的崩潰捕獲和錯誤處理,非常好的支持中間件和 json??傊?Go語言開發(fā)領域是一款值得好好研究的 Web 框架,開源網址:

首先下載安裝 gin 包:

go get -u github.com/gin-gonic/gin

一個簡單的例子:

package main

import "github.com/gin-gonic/gin"

func main() {

//Default返回一個默認的路由引擎

r := gin.Default()

r.GET("/ping", func(c *gin.Context) {

//輸出json結果給調用方

c.JSON(200, gin.H{

"message": "pong",

})

})

r.Run() // listen and serve on 0.0.0.0:8080

}

編譯運行程序,打開瀏覽器,訪問頁面顯示:

{"message":"pong"}

gin 的功能不只是簡單輸出 Json 數據。它是一個輕量級的 WEB 框架,支持 RestFull 風格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上傳,分組路由,Multipart/Urlencoded FORM,以及支持 JsonP,參數處理等等功能,這些都和 WEB 緊密相關,通過提供這些功能,使開發(fā)人員更方便地處理 WEB 業(yè)務。

Gin 實際應用

接下來使用 Gin 作為框架來搭建一個擁有靜態(tài)資源站點,動態(tài) WEB 站點,以及 RESTFull API 接口站點(可專門作為手機 APP 應用提供服務使用)組成的,亦可根據情況分拆這套系統(tǒng),每種功能獨立出來單獨提供服務。

下面按照一套系統(tǒng)但采用分站點來說明,首先是整個系統(tǒng)的目錄結構,website 目錄下面 static 是資源類文件,為靜態(tài)資源站點專用;photo 目錄是 UGC 上傳圖片目錄,tpl 是動態(tài)站點的模板。

當然這個目錄結構是一種約定,可以根據情況來修改。整個項目已經開源,可以訪問來詳細了解:具體每個站點的功能怎么實現呢?請看下面有關每個功能的講述:

靜態(tài)資源站點

一般網站開發(fā)中,我們會考慮把 js,css,以及資源圖片放在一起,作為靜態(tài)站點部署在 CDN,提升響應速度。采用 Gin 實現起來非常簡單,當然也可以使用 net/http 包輕松實現,但使用 Gin 會更方便。

不管怎么樣,使用 Go 開發(fā),我們可以不用花太多時間在 WEB 服務環(huán)境搭建上,程序啟動就直接可以提供 WEB 服務了。

package main

import (

"net/http"

"github.com/gin-gonic/gin"

)

func main() {

router := gin.Default()

// 靜態(tài)資源加載,本例為css,js以及資源圖片

router.StaticFS("/public", http.Dir("D:/goproject/src/github.com/ffhelicopter/tmm/website/static"))

router.StaticFile("/favicon.ico", "./resources/favicon.ico")

// Listen and serve on 0.0.0.0:80

router.Run(":80")

}

首先需要是生成一個 Engine,這是 gin 的核心,默認帶有 Logger 和 Recovery 兩個中間件。

router := gin.Default()

StaticFile 是加載單個文件,而 StaticFS 是加載一個完整的目錄資源:

func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes

func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes

這些目錄下資源是可以隨時更新,而不用重新啟動程序?,F在編譯運行程序,靜態(tài)站點就可以正常訪問了。

golang 有哪些比較穩(wěn)定的 web 開發(fā)框架

第一個:Beego框架

Beego框架是astaxie的GOWeb開發(fā)的開源框架。Beego框架最大的特點是由八個大的基礎模塊組成,八大基礎模塊的特點是可以根據自己的需要進行引入,模塊相互獨立,模塊之間耦合性低。

相應的Beego的缺點就是全部使用時比較臃腫,通過bee工具來構建項目時,直接生成項目目錄和耦合關系,從而會導致在項目開發(fā)過程中受制性較大。

第二個:Gin框架

Gin是一個GOlang的微框架,封裝比較優(yōu)雅,API友好,源碼注釋比較明確,已經發(fā)布了1.0版本;具有快速靈活、容錯方便等特點,其實對于golang而言,web框架的依賴遠比Python、Java更小。

目前在很多使用golang的中小型公司中進行業(yè)務開發(fā),使用Gin框架的很多,大家如果想使用golang進行熟練Web開發(fā),可以多關注一下這個框架。

第三個:Iris框架

Iris框架在其官方網站上被描述為GO開發(fā)中最快的Web框架,并給出了多框架和多語言之前的性能對比。目前在github上,Iris框架已經收獲了14433個star和1493個fork,可見是非常受歡迎的。

在實際開發(fā)中,Iris框架與Gin框架的學習曲線幾乎相同,所以掌握了Gin就可以輕松掌握Iris框架。

第四個:Echo框架

也是golang的微型Web框架,其具備快速HTTP路由器、支持擴展中間件,同時還支持靜態(tài)文件服務、Websocket以及支持制定綁定函數,制定相應渲染函數,并允許使用任意的HTML模版引擎。

go語言有沒有類似tp5框架

有,go語言有框架,例如:Beego(Go語言下開源的,高性能Web框架 )、Buffalo(Go語言下快速Web開發(fā)框架)、Echo、Gin、Iris、Revel(高生產率,全棧Go語言的Web框架)等。

GoLang -- Gin框架

? 何為框架:

框架一直是敏捷開發(fā)中的利器,能讓開發(fā)者很快的上手并做出應用,甚至有的時候,脫離了框架,一些開發(fā)者都不會寫程序了。成長總不會一蹴而就,從寫出程序獲取成就感,再到精通框架,快速構造應用,當這些方面都得心應手的時候,可以嘗試改造一些框架,或是自己創(chuàng)造一個。

Gin是一個golang的微框架,封裝比較優(yōu)雅,API友好,源碼注釋比較明確,已經發(fā)布了1.0版本。具有快速靈活,容錯方便等特點。其實對于golang而言,web框架的依賴要遠比Python,Java之類的要小。自身的net/http足夠簡單,性能也非常不錯??蚣芨袷且恍┏S煤瘮祷蛘吖ぞ叩募?。借助框架開發(fā),不僅可以省去很多常用的封裝帶來的時間,也有助于團隊的編碼風格和形成規(guī)范。

(1)首先需要安裝,安裝比較簡單,使用go get即可

go get github.com/gin-gonic/gin

如果安裝失敗,直接去Github clone下來,放置到對應的目錄即可。

(2)代碼中使用:

下面是一個使用Gin的簡單例子:

package main

import (

"github.com/gin-gonic/gin"

)

func main() {

router := gin.Default()

router.GET("/ping", func(c *gin.Context) {

c.JSON(200, gin.H{

"message": "pong",

})

})

router.Run(":8080") // listen and serve on 0.0.0.0:8080

}

簡單幾行代碼,就能實現一個web服務。使用gin的Default方法創(chuàng)建一個路由handler。然后通過HTTP方法綁定路由規(guī)則和路由函數。不同于net/http庫的路由函數,gin進行了封裝,把request和response都封裝到gin.Context的上下文環(huán)境。最后是啟動路由的Run方法監(jiān)聽端口。麻雀雖小,五臟俱全。當然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。

Gin可以很方便的支持各種HTTP請求方法以及返回各種類型的數據,詳情可以前往查看。

2.1 匹配參數

我們可以使用Gin框架快速的匹配參數,如下代碼所示:

冒號:加上一個參數名組成路由參數??梢允褂胏.Param的方法讀取其值。當然這個值是字串string。諸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不會被匹配。

瀏覽器輸入以下測試:

返回結果為:

其中c.String是gin.Context下提供的方法,用來返回字符串。

其中c.Json是gin.Context下提供的方法,用來返回Json。

下面我們使用以下gin提供的Group函數,方便的為不同的API進行分類。

我們創(chuàng)建了一個gin的默認路由,并為其分配了一個組 v1,監(jiān)聽hello請求并將其路由到視圖函數HelloPage,最后綁定到 0.0.0.0:8000

C.JSON是Gin實現的返回json數據的內置方法,包含了2個參數,狀態(tài)碼和返回的內容。http.StatusOK代表返回狀態(tài)碼為200,正文為{"message": “welcome"}。

注:Gin還包含更多的返回方法如c.String, c.HTML, c.XML等,請自行了解。可以方便的返回HTML數據

我們在之前的組v1路由下新定義一個路由:

下面我們訪問

可以看到,通過c.Param(“key”)方法,Gin成功捕獲了url請求路徑中的參數。同理,gin也可以捕獲常規(guī)參數,如下代碼所示:

在瀏覽器輸入以下代碼:

通過c.Query(“key”)可以成功接收到url參數,c.DefaultQuery在參數不存在的情況下,會由其默認值代替。

我們還可以為Gin定義一些默認路由:

這時候,我們訪問一個不存在的頁面:

返回如下所示:

下面我們測試在Gin里面使用Post

在測試端輸入:

附帶發(fā)送的數據,測試即可。記住需要使用POST方法.

繼續(xù)修改,將PostHandler的函數修改如下

測試工具輸入:

發(fā)送的內容輸入:

返回結果如下:

備注:此處需要指定Content-Type為application/x-www-form-urlencoded,否則識別不出來。

一定要選擇對應的PUT或者DELETE方法。

Gin框架快速的創(chuàng)建路由

能夠方便的創(chuàng)建分組

支持url正則表達式

支持參數查找(c.Param c.Query c.PostForm)

請求方法精準匹配

支持404處理

快速的返回給客戶端數據,常用的c.String c.JSON c.Data


當前題目:go語言開發(fā)框架 go語言開發(fā)框架是什么
文章源于:http://weahome.cn/article/dogpcch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部