gin的占位符:和通配符*

1、用法

在 Gin 路由中,可以使用一個通配符(*)或一個占位符(:)來捕獲 URL 的一部分。

	r.GET("/royal/:id", func(c *gin.Context) {id := c.Param("id")//fmt.Println("into :id")c.String(http.StatusOK, "into :id, id is: "+id)})r.GET("royal2/*name", func(c *gin.Context) {name := c.Param("name")//fmt.Println("into *name")c.String(http.StatusOK, "into *name, name is: "+name)})

在這里插入圖片描述
在這里插入圖片描述
通配符表示的整個路徑,并且會加上/。
在這里插入圖片描述
如果通配符什么都不帶,則返回的是一個/。
占位符則是用來獲取一個路徑段的參數:
在這里插入圖片描述
但如果是占位符后面再跟路由,會報404
在這里插入圖片描述
占位符注冊的路由以后,可以注冊相同前綴的路由。
比如用占位符注冊了/royal/:id,可以繼續注冊/royal/123,并且訪問/royal/123會精確匹配注冊的路由。

	r.GET("/royal/123", func(c *gin.Context) {//id := c.Param("id")//fmt.Println("into :id")c.String(http.StatusOK, "into /royal/123")})

在這里插入圖片描述
但如果是通配符,則不可以,會報panic。

	r.GET("royal2/*name", func(c *gin.Context) {name := c.Param("name")//fmt.Println("into *name")c.String(http.StatusOK, "into *name, name is: "+name)})

在這里插入圖片描述

2、連續占位符

同一個路由中,允許多個占位符。

	r.GET("/royal3/:id/123/:id", func(c *gin.Context) {id := c.Param("id")//fmt.Println("into :id")c.String(http.StatusOK, "/royal3/:id/123/:id"+", id is: "+id)})

在這里插入圖片描述
查看源碼發現,Param會匹配第一個相同的key,也就是第一個id。

3、連續通配符

	r.GET("royal5/*id/123/*name", func(c *gin.Context) {name := c.Param("name")id := c.Param("id")fmt.Println("into *name")c.String(http.StatusOK, "id is: "+id+", name is:"+name)})

連續通配符會panic
在這里插入圖片描述

4、通配符與占位符的使用

同一路由中,通配符和占位符可以同時使用,但是占位符要在通配符的前面,否則會panic

	r.GET("/royal6/*name/:id", func(c *gin.Context) {id := c.Param("id")fmt.Println("into :id")c.String(http.StatusOK, "hello "+id)})

在這里插入圖片描述

	r.GET("royal1/:id/*name", func(c *gin.Context) {name := c.Param("name")id := c.Param("id")fmt.Println("into *name")c.String(http.StatusOK, "id is: "+id+", name is:"+name)})

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37329.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37329.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

成都到長沙自駕游路線推薦-成都至長沙自駕游攻略

請問成都到長沙自駕怎么走,中途在哪里休息比較合適,沿途有哪些景點? 在湖南湘西的吉首落腳是首選 一,成都到吉首 約在800公里。全程高速估計就是 9個小時左右。如果上午出發,差不多可以到吉首吃晚餐,再住酒…

ef core 分頁

在使用 Entity Framework Core(EF Core)進行分頁查詢時,你可以借助以下方法來實現: 使用 Skip 和 Take 方法:Skip 方法用于跳過指定數量的記錄,而 Take 方法用于選擇指定數量的記錄。結合使用這兩個方法&am…

HBase API

我們之后的實際開發中不可能在服務器那邊直接使用shell命令一直敲的&#xff0c;一般都是通過API進行操作的。 環境準備 新建Maven項目&#xff0c;導入Maven依賴 <dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>…

命令執行漏洞

1、命令執行漏洞 1.1、簡介 Django是用Python開發的一個免費開源的Web結構&#xff0c;幾乎包括了Web使用方方面面&#xff0c;能夠用于快速建立高性能、文雅的網站&#xff0c;Diango提供了許多網站后臺開發常常用到的模塊&#xff0c;使開發者可以專注于業務部分。 1.2、漏…

【Terraform學習】管理顯式依賴關系-depends_on(Terraform配置語言學習)

背景&#xff1a; 關于如何在機器上拉terraform代碼&#xff0c;初始化就不重復了&#xff0c;需要的可以查看前面的文章&#xff1a; 【Terraform學習】Terraform-AWS部署快速入門&#xff08;快速入門&#xff09;_向往風的男子的博客-CSDN博客 管理顯式依賴關系 隱式依賴…

【刪除vlan的方法】

提示錯誤 [SW1]undo vlan 10 Error: The VLAN has a L3 interface. Please delete it first. 解決辦法 undo interface Vlanif10 #刪除vlan 10下的接口 [SW1-GigabitEthernet0/0/1]dis this #刪除下列的IP

接口自動化必備技能——jmeter提取token方式以及設置成全局變量(跨線程組傳token值)方式

前言 今天Darren洋教大家如何使用jmeter中的插件來進行token值的提取與調用&#xff0c;今天Darren洋介紹兩種jmeter提取token值的方式&#xff0c;一種是在當前線程組中直接提取token值&#xff0c;一種是跨線程組的方式進行token值的提取并調用給不同線程組里的HTTP接口使用。…

如何讀取文件夾內的諸多文件,并選擇性的保留部分文件

目錄 問題描述: 問題解決: 問題描述: 當前有一個二級文件夾,第一層是文件夾名稱是“Papers(LNAI14302-14304)",第二級文件夾目錄名稱如下圖藍色部分所示。第三層為存放的文件,如下下圖所示,每一個文件中,均存放三個文件,分別為copyright.pdf, submission.pdf, s…

【PYTHON】WebSocket服務端與客戶端通信實現

目錄 1 簡介 2 WebSocket優點 3 前后端交互的方式 4 心跳機制和重連機制 5 后端代碼 6 測試

重磅發布!曙光存儲“3+N”,綠色存力新選擇

8月9-10日&#xff0c;2023年數據中心市場年會在京舉辦。會上&#xff0c;中科曙光存儲產品事業部總監石靜發表《綠色存力 打通綠色數據中心最后一站》主題演講。“在今天&#xff0c;數據中心正在成為‘高能耗’產業&#xff0c;綠色節能從可選項走向必選項。曙光存儲跨越綠色…

管理 IBM Spectrum LSF

管理 IBM Spectrum LSF 了解如何管理 IBM Spectrum LSF 集群&#xff0c;控制守護程序&#xff0c;更改集群配置以及使用主機和隊列。 管理 LSF 作業和作業調度策略。 查看作業信息和控制作業。 了解如何配置資源并將其分配給 LSF 作業。 了解如何在 LSF 集群中提交&#xff0…

開發測試框架一 - 創建springboot工程及基礎操作

一、創建及運行方式 1. 從官網導入&#xff1a; 注意&#xff1a;由于我的java版本是1.8&#xff1b;所以選中了spring2.7.14&#xff1b;如果你的java版本是9及以上&#xff0c;選中spring3相關的同時Java 版本也要對應起來 2. 創建第一個get請求 創建Controller package及…

mysql滑動窗口案例

獲取學科最高分 SELECT DISTINCT name,subject,MAX(score) OVER (PARTITION by subject) as 此學科最高分數 from scores;獲取學科的報名人數 select DISTINCT subject,count(name) over (partition by subject) as 報名此學科的人數 from scores; 求學科總分 SELECT DISTI…

JavaScript高級:常見設計模式

設計模式是在軟件開發中重復出現的問題的解決方案&#xff0c;它們是經過驗證的、被廣泛接受的最佳實踐。設計模式可以讓我們避免重復造輪子&#xff0c;提高代碼質量和可維護性。在本文中&#xff0c;我們將介紹幾種常見的設計模式&#xff0c;以及它們的實現和應用。 1. 單例…

Conda(Python管理工具)

1.簡介 Conda是一個開源的包管理器和環境管理器&#xff0c;主要用于管理Python&#xff0c;但也可以用于其他語言。它主要用于安裝、管理和更新軟件包及其依賴項&#xff0c;以及創建、保存、加載和切換不同的開發環境。Conda可以在Windows、MacOS和Linux系統上使用&#xff…

Spring Boot + Vue3前后端分離實戰wiki知識庫系統十二--用戶管理單點登錄開發一...

目標&#xff1a; 在上一次https://www.cnblogs.com/webor2006/p/17533745.html我們已經完成了文檔管理的功能模塊開發&#xff0c;接下來則開啟新模塊的學習---用戶登錄&#xff0c;這塊還是有不少知識點值得學習的&#xff0c;先來看一下整體的效果&#xff0c;關于效果官網有…

2023全國大學生數學建模競賽C提思路模型代碼

目錄 1.C題思路模型&#xff1a;比賽開始后&#xff0c;第一時間更新&#xff0c;獲取見文末名片 2.比賽時間&#xff1a;2023年9月7日18點到2023年9月10日20點 3 全國大學生數學建模競賽常見數模問題 3.1 分類問題 3.2 優化問題 詳細思路見此名片&#xff0c;開賽第一時間…

YOLOv8目標檢測算法

YOLOv8目標檢測算法相較于前幾代YOLO系列算法具有如下的幾點優勢&#xff1a; 更友好的安裝/運行方式速度更快、準確率更高新的backbone&#xff0c;將YOLOv5中的C3更換為C2FYOLO系列第一次嘗試使用anchor-free新的損失函數 YOLOv8簡介 YOLOv8 是 Ultralytics 公司繼 YOLOv5…

FiboSearch Pro – Ajax Search for WooCommerce 商城AJAX實時搜索插件

FiboSearch Pro是最受歡迎的WooCommerce 產品搜索插件。它為您的用戶提供精心設計的高級 AJAX 搜索欄&#xff0c;并提供實時搜索建議。默認情況下&#xff0c;WooCommerce 提供非常簡單的搜索解決方案&#xff0c;沒有實時產品搜索&#xff0c;甚至沒有 SKU 搜索。FiboSearch&…

網絡基礎(一)橋接網絡

網絡基礎知識 橋接網絡 橋接網絡是一種網絡設計技術&#xff0c;其目的是將兩個或多個網絡段連接在一起&#xff0c;使它們在邏輯上表現為單個網絡。這通過使用網絡橋來實現&#xff0c;網絡橋工作在數據鏈路層&#xff08;第2層&#xff09;&#xff0c;只關心MAC地址&#…