最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Gin 路由與路由文件分組的實現(xiàn)實例

 更新時間:2025年11月21日 10:22:39   作者:Koya1_c  
本文主要介紹了Gin 路由與路由文件分組的實現(xiàn)實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

路由

路由(Routing)是由一個 URL(或者叫路徑)和一個特定的 HTTP 方法(GET、POST等)組成的,涉及到應用如何響應客戶端對某個網(wǎng)站節(jié)點的訪問。

GET 請求傳值

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()

	// localhost:8080/get?username=zhangsan&password=123
	r.GET("/get", func(c *gin.Context) {
		// 使用c.Query()獲取請求當中的參數(shù)
		username := c.Query("username")
		password := c.Query("password")
		// 當請求路徑當中沒有帶有 age 參數(shù)時,使用默認值18
		age := c.DefaultQuery("age", "18")
		c.JSON(http.StatusOK, gin.H{
			"msg":      "Get...",
			"username": username,
			"password": password,
			"age":      age,
		})
	})
	r.Run()
}

使用 Postman 進行測試

動態(tài)路由傳值

域名/user/20

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()

	r.GET("/user/:uid", func(c *gin.Context) {
		// 使用c.Param()獲取請求當中的參數(shù)
		uid := c.Param("uid")
		c.JSON(http.StatusOK, gin.H{
			"msg": "動態(tài)路由傳值...",
			"uid": uid,
		})
	})
	r.Run()
}

使用 Postman 進行測試

POST 請求傳值(獲取form表單數(shù)據(jù))

add.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/toAdd" method="post">
  用戶名 <input type="text" name="username">


  密碼 <input type="password" name="password">


  <input type="submit" value="提交">
</form>

</body>
</html>
package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()
	// 配置模板的文件
	r.LoadHTMLGlob("templates/*")

	// 輸入localhost:8080/add 跳轉到add.html頁面
	r.GET("/add", func(c *gin.Context) {
		c.HTML(200, "add.html", gin.H{})
	})
	r.POST("/toAdd", func(c *gin.Context) {
		// 使用c.PostForm()獲取請求當中的參數(shù)
		username := c.PostForm("username")
		password := c.PostForm("password")
		// 當表單當中沒有 age ,使用默認值18
		age := c.DefaultPostForm("age", "18")
		c.JSON(200, gin.H{
			"username": username,
			"password": password,
			"age":      age,
		})
	})
	r.Run()
}

簡單的路由組

package main

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


func main() {
	r := gin.Default()
	
	userRoutes := r.Group("/user")
	{
		userRoutes.GET("/add", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"msg": "userAdd...",
			})
		})
		userRoutes.GET("/edit", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"msg": "userEdit...",
			})
		})
	}
	
	adminRoutes := r.Group("/admin")
	{
		userRoutes.GET("/add", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"msg": "adminAdd...",
			})
		})
		userRoutes.GET("/edit", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"msg": "adminEdit...",
			})
		})
	}

	r.Run()
}

使用 Postman 進行測試

Gin 路由文件分組

在項目的根目錄下新建 routes 文件夾,并新建 go 文件

DefaultRoutes.go

package routes

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

func DefaultRoutesInit(r *gin.Engine) {
	defaultRoutes := r.Group("/")
	{
		defaultRoutes.GET("/", func(c *gin.Context) {
			c.String(200, "首頁")
		})
		defaultRoutes.GET("/news", func(c *gin.Context) {
			c.String(200, "新聞")
		})
	}
}

AdminRoutes.go

package routes

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

func AdminRoutesInit(r *gin.Engine) {
	adminRoutes := r.Group("/admin")
	{
		adminRoutes.GET("/", func(c *gin.Context) {
			c.String(200, "admin...")
		})
		adminRoutes.GET("/userlist", func(c *gin.Context) {
			c.String(200, "admin---userlist")
		})
		adminRoutes.GET("/plist", func(c *gin.Context) {
			c.String(200, "admin---plist")
		})
	}
}

ApiRoutes.go

package routes

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

func ApiRoutesInit(r *gin.Engine) {
	apiRoutes := r.Group("/api")
	{
		apiRoutes.GET("/", func(c *gin.Context) {
			c.String(200, "我是一個api接口")
		})
		apiRoutes.GET("/userlist", func(c *gin.Context) {
			c.String(200, "我是一個api接口---userlist")
		})
		apiRoutes.GET("/plist", func(c *gin.Context) {
			c.String(200, "我是一個api接口---plist")
		})
	}
}

main.go

package main

import (
	"Gin_demo/routes"
	"fmt"
	"github.com/gin-gonic/gin"
	"html/template"
	"time"
)

func main() {
	r := gin.Default()
	// 配置模板的文件
	r.LoadHTMLGlob("templates/*")
	// 配置靜態(tài)web目錄  第一個參數(shù)表示路由,第二個參數(shù)表示映射的路徑.
	r.Static("/static", "./static")
	
	routes.DefaultRoutesInit(r)
	routes.ApiRoutesInit(r)
	routes.AdminRoutesInit(r)

	r.Run()
}

到此這篇關于Gin 路由與路由文件分組的實現(xiàn)實例的文章就介紹到這了,更多相關Gin 路由與路由文件分組內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Go語言reflect.TypeOf()和reflect.Type通過反射獲取類型信息

    Go語言reflect.TypeOf()和reflect.Type通過反射獲取類型信息

    這篇文章主要介紹了Go語言reflect.TypeOf()和reflect.Type通過反射獲取類型信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • golang 數(shù)組隨機排序的實現(xiàn)

    golang 數(shù)組隨機排序的實現(xiàn)

    本文主要介紹了golang 數(shù)組隨機排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Golang操作DuckDB實戰(zhàn)案例分享

    Golang操作DuckDB實戰(zhàn)案例分享

    DuckDB是一個嵌入式SQL數(shù)據(jù)庫引擎,它與眾所周知的SQLite非常相似,但它是為olap風格的工作負載設計的,DuckDB支持各種數(shù)據(jù)類型和SQL特性,憑借其在以內存為中心的環(huán)境中處理高速分析的能力,它迅速受到數(shù)據(jù)科學家和分析師的歡迎,在這篇博文中,我們將探索在Go中使用DuckDB
    2025-01-01
  • 詳解Go語言中的數(shù)據(jù)庫操作

    詳解Go語言中的數(shù)據(jù)庫操作

    數(shù)據(jù)庫是應用開發(fā)中必須要掌握的技巧。這篇文章主要和大家介紹一下Go語言中相關的數(shù)據(jù)庫操作,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-02-02
  • Golang打印復雜結構體兩種方法詳解

    Golang打印復雜結構體兩種方法詳解

    在?Golang?語言開發(fā)中,我們經(jīng)常會使用結構體類型,如果我們使用的結構體類型的變量包含指針類型的字段,我們在記錄日志的時候,指針類型的字段的值是指針地址,將會給我們?debug?代碼造成不便
    2022-10-10
  • Web框架Gin中間件實現(xiàn)原理步驟解析

    Web框架Gin中間件實現(xiàn)原理步驟解析

    這篇文章主要為大家介紹了Web框架Gin中間件實現(xiàn)原理步驟解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 代碼之美:探索Go語言斷行規(guī)則的奧秘

    代碼之美:探索Go語言斷行規(guī)則的奧秘

    Go語言是一門以簡潔、清晰和高效著稱的編程語言,而斷行規(guī)則是其代碼風格的重要組成部分,通過深入研究Go語言的斷行規(guī)則,我們可以更好地理解和編寫優(yōu)雅的代碼,本文將從語法規(guī)范、代碼風格和最佳實踐等方面進行探討,幫助讀者更好地理解和應用Go語言的斷行規(guī)則
    2023-10-10
  • Go語言實現(xiàn)ssh&scp的方法詳解

    Go語言實現(xiàn)ssh&scp的方法詳解

    這篇文章主要為大家詳細介紹了如何利用Go語言實現(xiàn)ssh&scp,文中的示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴可以了解一下
    2022-10-10
  • Go語言實戰(zhàn)學習之流程控制詳解

    Go語言實戰(zhàn)學習之流程控制詳解

    這篇文章主要為大家詳細介紹了Go語言中的流程控制,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助?,需要的朋友可以參考下
    2022-08-08
  • Go語言web快速開發(fā)框架Gin的HttpRouter路由的使用

    Go語言web快速開發(fā)框架Gin的HttpRouter路由的使用

    in框架內部使用了高性能的路由器庫httprouter,支持動態(tài)參數(shù)匹配和簡潔的接口,本文主要介紹了Go語言web快速開發(fā)框架Gin的HttpRouter路由的使用,感興趣的可以了解一下
    2025-03-03

最新評論

长宁区| 左权县| 禹州市| 竹山县| 中宁县| 怀宁县| 讷河市| 泗洪县| 长治县| 扶余县| 藁城市| 旺苍县| 都昌县| 贵定县| 文成县| 修武县| 通山县| 延津县| 孟连| 饶阳县| 贵州省| 措勤县| 光山县| 米易县| 通化市| 廉江市| 淄博市| 盘山县| 汕头市| 延安市| 阿荣旗| 麻城市| 尼玛县| 义马市| 南部县| 澳门| 长岭县| 贵港市| 托里县| 山阴县| 河南省|