Gin框架中的PostForm用法及說(shuō)明
Gin框架中PostForm用法
最近重新在學(xué)習(xí)一下gin的:
這邊學(xué)到一個(gè)新的PostForm(),就是用來(lái)獲取前端輸入的字符串用的
貼代碼:
package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.POST("/api/test", func(ctx *gin.Context) { name := ctx.PostForm("姓名") fmt.Println("姓名:", name) age := ctx.PostForm("年齡") fmt.Println("年齡:", age) ctx.JSON(200, "這邊獲取到:"+name+" "+age) }) r.Run(":8090") }
這邊開(kāi)啟后:
用postman進(jìn)行測(cè)試
這里需要注意,這里和之前的shouldbind不一樣的地方是:
是在Body下面的x-www-form-url進(jìn)行輸入?yún)?shù)的,而不是用之前的Params進(jìn)行數(shù)據(jù)傳入:
了通過(guò)URL查詢參數(shù)提交數(shù)據(jù)到服務(wù)器外,常用的還有通過(guò)Form表單的方式。
Form表單相比URL查詢參數(shù),用戶體驗(yàn)好,可以承載更多的數(shù)據(jù),尤其是文件上傳,所以也更為方便。
Form表單
對(duì)于Form表單,我們不會(huì)陌生,比如input文本框、密碼框等等,可以讓我們輸入一些數(shù)據(jù),然后點(diǎn)擊「保存」、「提交」等按鈕,把數(shù)據(jù)提交到服務(wù)器的。
對(duì)于Form表單來(lái)說(shuō),有兩種提交方式GET和POST。其中GET方式就是我們前兩篇文章的URL查詢參數(shù)的方式,參考即可獲得對(duì)應(yīng)的參數(shù)鍵值對(duì),這篇文章主要介紹POST的方式的表單,而Gin處理的也是這種表單。
如果一定要用c.PostForm() headers必須為x-www-form-urlencoded
go語(yǔ)言的特點(diǎn)
語(yǔ)法簡(jiǎn)潔
Go 語(yǔ)言簡(jiǎn)單易學(xué),學(xué)習(xí)曲線平緩,不需要像 C/C++ 語(yǔ)言動(dòng)輒需要兩到三年的學(xué)習(xí)期。
Go 語(yǔ)言被稱為“互聯(lián)網(wǎng)時(shí)代的C語(yǔ)言”。
Go 語(yǔ)言的風(fēng)格類似于C語(yǔ)言。
其語(yǔ)法在C語(yǔ)言的基礎(chǔ)上進(jìn)行了大幅的簡(jiǎn)化,去掉了不需要的表達(dá)式括號(hào),循環(huán)也只有 for 一種表示方法,就可以實(shí)現(xiàn)數(shù)值、鍵值等各種遍歷。
代碼風(fēng)格統(tǒng)一
Go 語(yǔ)言提供了一套格式化工具——go fmt。
一些 Go 語(yǔ)言的開(kāi)發(fā)環(huán)境或者編輯器在保存時(shí),都會(huì)使用格式化工具進(jìn)行修改代碼的格式化,這樣就保證了不同開(kāi)發(fā)者提交的代碼都是統(tǒng)一的格式。
執(zhí)行性能好
Go語(yǔ)言是一門(mén)編譯型的語(yǔ)言,我們編寫(xiě)好的代碼直接編譯成服務(wù)器可以執(zhí)行的二進(jìn)制可執(zhí)行文件。
開(kāi)發(fā)效率高
Go語(yǔ)言雖然是一門(mén)編譯型的語(yǔ)言,但是它內(nèi)置了垃圾回收機(jī)制,降低了開(kāi)發(fā)者的心智負(fù)擔(dān),使其擁有像Python、PHP等解釋性語(yǔ)言的一樣的開(kāi)發(fā)效率。
真正實(shí)現(xiàn)了開(kāi)發(fā)效率和執(zhí)行效率的完美結(jié)合。
天生支持并發(fā)
Go于2009年發(fā)布,當(dāng)時(shí)多核處理器已經(jīng)上市。
Go語(yǔ)言在多核并發(fā)上擁有原生的設(shè)計(jì)優(yōu)勢(shì),Go語(yǔ)言從底層原生支持并發(fā),無(wú)須第三方庫(kù)、開(kāi)發(fā)者的編程技巧和開(kāi)發(fā)經(jīng)驗(yàn)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Golang比較兩個(gè)slice是否相等的問(wèn)題
本文主要介紹了Golang比較兩個(gè)slice是否相等的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Go條件控制語(yǔ)句詳解(if-else、switch和select)
條件語(yǔ)句用于檢查一個(gè)條件是否為真,并根據(jù)條件的真假來(lái)決定是否執(zhí)行相應(yīng)的代碼,下面這篇文章主要給大家介紹了關(guān)于Go條件控制語(yǔ)句(if-else、switch和select)的相關(guān)資料,需要的朋友可以參考下2024-03-03Go語(yǔ)言中的init函數(shù)特點(diǎn)及用法詳解
在Go語(yǔ)言中,init()函數(shù)是一種特殊的函數(shù),用于在程序啟動(dòng)時(shí)自動(dòng)執(zhí)行一次。它的存在為我們提供了一種機(jī)制,可以在程序啟動(dòng)時(shí)進(jìn)行一些必要的初始化操作,為程序的正常運(yùn)行做好準(zhǔn)備,在這篇文章中,我們將詳細(xì)探討init()函數(shù)的特點(diǎn)、用途和注意事項(xiàng)2023-06-06Go設(shè)計(jì)模式之狀態(tài)模式講解和代碼示例
狀態(tài)是一種行為設(shè)計(jì)模式,?讓你能在一個(gè)對(duì)象的內(nèi)部狀態(tài)變化時(shí)改變其行為,該模式將與狀態(tài)相關(guān)的行為抽取到獨(dú)立的狀態(tài)類中,?讓原對(duì)象將工作委派給這些類的實(shí)例,?而不是自行進(jìn)行處理,本文將通過(guò)代碼示例給大家簡(jiǎn)單的介紹一下Go狀態(tài)模式2023-08-08淺談Golang中創(chuàng)建一個(gè)簡(jiǎn)單的服務(wù)器的方法
這篇文章主要介紹了淺談Golang中創(chuàng)建一個(gè)簡(jiǎn)單的服務(wù)器的方法,golang中的net/http包對(duì)網(wǎng)絡(luò)的支持非常好,這樣會(huì)讓我們比較容易的建立起一個(gè)相對(duì)簡(jiǎn)單的服務(wù)器,有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06go調(diào)用shell命令兩種方式實(shí)現(xiàn)(有無(wú)返回值)
本文主要介紹了go調(diào)用shell命令兩種方式實(shí)現(xiàn)(有無(wú)返回值),主要用于執(zhí)行shell命令,并且返回shell的標(biāo)準(zhǔn)輸出,具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12