日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

接口传值后不起作用_前端工程师吐后端工程师(第八讲)——接口的开发

發布時間:2025/3/12 HTML 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 接口传值后不起作用_前端工程师吐后端工程师(第八讲)——接口的开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一講我們介紹了如何寫讓模板變量在頁面上展示,本講我們介紹一下后端開發工作中最常用的功能——接口。創建一個go_test4文件夾,然后把go_test3中的代碼復制進去。然后打開main.go文件,進行更改。

說到接口就必不可少的涉及到傳值和接口返回,還有GET方式 、POST方式獲取數據。下面我們就先舉例來看看一個GET接口如何接收參數并且返回數據,具體代碼如下:

package main import "github.com/gin-gonic/gin" import "net/http" func main() {r:= gin.Default()r.GET("/index", func(c *gin.Context) {firstname := c.Query("firstname")lastname := c.Query("lastname");c.String(http.StatusOK, "Hello %s %s", firstname, lastname)})r.Run(":9999") // listen and serve on 0.0.0.0:9999 }

代碼前半部分還是跟第七講中一樣,我們只需要關注 c.Query 和 c.String這兩個差異點就可以了。c.Query方法相當于Nodejs請求下圖代碼中的paramStr=url.parse(req.url).query;這一行代碼。

var http=require('http'),url=require('url'), querystring=require('querystring'); http.createServer(function(req,res{paramStr=url.parse(req.url).query; )}

就是在url中查找Key為firstname的字段,然后把value 返回給firstname。lastname也是的獲取方式也是一樣的。

至于c.String本身跟c.HTML還是有一些差異的。c.String有三個參數,第一個是請求返回的Code碼,這個參數直接http.StatusOK就可以。第二個參數是返回字符串原型,第三個是需要替換的字符串變量。

c.HTML也有三個參數,第一個也是請求返回的Code碼,第二個是渲染HTML的模板地址(可以是html也就是不能設置模板變量的,也可以是tmpl可以設置模板變量的),最后一個是就是需要展示的模板變量名。

具體函數先介紹到這里,后面我們看一下運行代碼之后的訪問界面。

訪問:http://localhost:9999/index?firstname=%22Chen1%22&lastname=%22Chen2%22

可以看到下圖,我們在訪問頁面請求時加入了firtname和lastname參數。然后在通過Gin的router獲取到了參數。最終把參數拼接為Hello "Chen1" "Chen2"字符串,返回給前端頁面。

GET方法返回頁面

另外,在服務器控制臺我們也能看到用戶攜帶的對應參數信息,這部分信息不是我們打印的,而是Gin自動會在控制臺拼接出訪問用戶的PATH,如下圖所示。

GET方法控制臺輸出

我們已經講過了GET請求的方式返回數據,以及獲取URL中的參數。

接下來我們該完成另一個在平時開發中常用的接口形式——POST方法傳遞數據。

接下來我們把main.go文件改為下面的代碼。

package main import ("fmt""net/http""github.com/gin-gonic/gin" ) func main() {r := gin.Default()r.POST("/post", func(c *gin.Context) {name := c.PostForm("name") password := c.DefaultPostForm("password", "00000000")result, ok := c.GetPostForm("ok") fmt.Println(ok)c.String(http.StatusOK, "hello %s %s %s", name, password, result)})r.Run(":9999") // listen and serve on 0.0.0.0:9999 }

然后執行go run main.go。

然后開啟postman,發POST送一個請求,并且設置對應的參數name參數為aaaa,對應的password參數為password,對應的ok參數為ok。發送postman請求看看返回如下圖所示。

Gin的POST返回

c.String(http.StatusOK, "hello %s %s %s", name, password, result)方法中,我們請求的參數都已經返回。可以大家觀察到還有一個fmt.Println(ok)沒有輸出。fmt.Println(ok)要在控制臺中觀察。如下圖所示:

println方法打印的true

下面我們就對在后端中獲取Gin中POST的參數的三個常用方法做一下介紹。

PostForm獲取POST參數,如果沒有獲取到對應key的返回值,觸發零值機制,返回空字符串

DefaultPostForm獲取POST參數,如果沒有獲取到返回key的返回值,返回設置的默認值,也就是DefaultPostForm函數的第二個參數。

GetPostForm獲取post參數,但是有兩個返回值,第一個返回值表示返回結果,如果沒有獲取對應key的返回值時,同樣出發零值機制,返回空字符串。第二個返回值會返回當時key值是否存在的狀態,能獲取到返回true,如果不能獲取到返回false。

到此最常用的兩種獲取數據方式就介紹到這里了,有了他們其實我們就可以應對大部分的業務邏輯接口。

陳辰(CC老師) 978563552@qq.com

總結

以上是生活随笔為你收集整理的接口传值后不起作用_前端工程师吐后端工程师(第八讲)——接口的开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。