1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

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

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
      go語(yǔ)言使用框架的好處 go語(yǔ)言使用框架的好處和壞處

      GoLang -- Gin框架

      ? 何為框架:

      十余年的東安網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整東安建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“東安網(wǎng)站設(shè)計(jì)”,“東安網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

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

      Gin是一個(gè)golang的微框架,封裝比較優(yōu)雅,API友好,源碼注釋比較明確,已經(jīng)發(fā)布了1.0版本。具有快速靈活,容錯(cuò)方便等特點(diǎn)。其實(shí)對(duì)于golang而言,web框架的依賴(lài)要遠(yuǎn)比Python,Java之類(lèi)的要小。自身的net/http足夠簡(jiǎn)單,性能也非常不錯(cuò)。框架更像是一些常用函數(shù)或者工具的集合。借助框架開(kāi)發(fā),不僅可以省去很多常用的封裝帶來(lái)的時(shí)間,也有助于團(tuán)隊(duì)的編碼風(fēng)格和形成規(guī)范。

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

      go get github.com/gin-gonic/gin

      如果安裝失敗,直接去Github clone下來(lái),放置到對(duì)應(yīng)的目錄即可。

      (2)代碼中使用:

      下面是一個(gè)使用Gin的簡(jiǎn)單例子:

      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

      }

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

      Gin可以很方便的支持各種HTTP請(qǐng)求方法以及返回各種類(lèi)型的數(shù)據(jù),詳情可以前往查看。

      2.1 匹配參數(shù)

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

      冒號(hào):加上一個(gè)參數(shù)名組成路由參數(shù)。可以使用c.Param的方法讀取其值。當(dāng)然這個(gè)值是字串string。諸如/user/rsj217,和/user/hello都可以匹配,而/user/和/user/rsj217/不會(huì)被匹配。

      瀏覽器輸入以下測(cè)試:

      返回結(jié)果為:

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

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

      下面我們使用以下gin提供的Group函數(shù),方便的為不同的API進(jìn)行分類(lèi)。

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

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

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

      我們?cè)谥暗慕Mv1路由下新定義一個(gè)路由:

      下面我們?cè)L問(wèn)

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

      在瀏覽器輸入以下代碼:

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

      我們還可以為Gin定義一些默認(rèn)路由:

      這時(shí)候,我們?cè)L問(wèn)一個(gè)不存在的頁(yè)面:

      返回如下所示:

      下面我們測(cè)試在Gin里面使用Post

      在測(cè)試端輸入:

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

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

      測(cè)試工具輸入:

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

      返回結(jié)果如下:

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

      一定要選擇對(duì)應(yīng)的PUT或者DELETE方法。

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

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

      支持url正則表達(dá)式

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

      請(qǐng)求方法精準(zhǔn)匹配

      支持404處理

      快速的返回給客戶(hù)端數(shù)據(jù),常用的c.String c.JSON c.Data

      golang做web網(wǎng)站,對(duì)比php python java nodejs等有什么優(yōu)勢(shì)

      我的思路是這樣,因?yàn)樽约浩瘘c(diǎn)低,還精力有限,又想彎道追上技術(shù)潮流,所以著眼未來(lái),選擇Golang。既然敢叫云技術(shù)語(yǔ)言,那么它的性能自然是適合未來(lái)發(fā)展的,像facebook這樣的大公司貌似也挺重視它…最最主要的,賭它未來(lái)能全棧應(yīng)用,期待可以直接上手用Go開(kāi)發(fā)Android和iOS應(yīng)用的那一天~

      框架選擇上嗎,初級(jí)選手建議Revel(開(kāi)源案例比較多,老框架、Go官方給予了該框架很高的評(píng)價(jià)),其實(shí)Go語(yǔ)言眾多框架性能都很卓越,水平高的不用框架直接玩更爽。順嘴吐一下槽,Go語(yǔ)言框架之多如少女臉上的青春痘~

      對(duì)了,選擇Go語(yǔ)言的好處是,各個(gè)社區(qū)學(xué)習(xí)互助氛圍比較好,你去哪個(gè)網(wǎng)上社區(qū)去請(qǐng)教問(wèn)題,都會(huì)有人熱情解答~

      go語(yǔ)言到底有什么好處

      1. 部署簡(jiǎn)單

      Go

      編譯生成的是一個(gè)靜態(tài)可執(zhí)行文件,除了glibc外沒(méi)有其他外部依賴(lài)。這讓部署變得異常方便:目標(biāo)機(jī)器上只需要一個(gè)基礎(chǔ)的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應(yīng)用所需的各種包、庫(kù)的依賴(lài)關(guān)系,大大減輕了維護(hù)的負(fù)擔(dān)。

      2. 并發(fā)性好

      Goroutine和channel使得編寫(xiě)高并發(fā)的服務(wù)端軟件變得相當(dāng)容易,很多情況下完全不需要考慮鎖機(jī)制以及由此帶來(lái)的各種問(wèn)題。單個(gè)Go應(yīng)用也能有效的利用多個(gè)CPU核,并行執(zhí)行的性能好。

      3. 良好的語(yǔ)言設(shè)計(jì)

      從學(xué)術(shù)的角度講Go語(yǔ)言其實(shí)非常平庸,不支持許多高級(jí)的語(yǔ)言特性;但從工程的角度講,Go的設(shè)計(jì)是非常優(yōu)秀的:規(guī)范足夠簡(jiǎn)單靈活,有其他語(yǔ)言基礎(chǔ)的程序員都能迅速上手。更重要的是

      Go 自帶完善的工具鏈,大大提高了團(tuán)隊(duì)協(xié)作的一致性。

      4. 執(zhí)行性能好

      雖然不如 C 和 Java,但相比于其他編程語(yǔ)言,其執(zhí)行性能還是很好的,適合編寫(xiě)一些瓶頸業(yè)務(wù),內(nèi)存占用也非常省。


      文章題目:go語(yǔ)言使用框架的好處 go語(yǔ)言使用框架的好處和壞處
      標(biāo)題鏈接:http://ef60e0e.cn/article/dopdhep.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        夹江县| 锡林浩特市| 万州区| 昆山市| 建昌县| 海口市| 屏山县| 常德市| 曲阳县| 芜湖市| 德钦县| 电白县| 会东县| 城口县| 彭水| 叶城县| 江源县| 全南县| 陈巴尔虎旗| 阳东县| 明光市| 拜泉县| 甘肃省| 本溪市| 海门市| 永川市| 广饶县| 沙田区| 延庆县| 镇巴县| 旅游| 新营市| 邳州市| 米脂县| 凯里市| 绵阳市| 教育| 辉县市| 醴陵市| 正镶白旗| 华坪县|