Go语言Web框架Gin的知识点汇总(二)

Gin框架中的路由分组

package main

import (

"github.com/gin-gonic/gin"

"net/http"

)

func main() {

r :=gin.Default()

//创建一个路由组

admin :=r.Group("/admin")

{

admin.GET("/index", func(c *gin.Context) {

c.String(http.StatusOK,"/admin/index")

})

}

r.Run(":8080")

}

参数数据映射

GIn框架支持 json,xml,yamlurl参数进行数据映射,绑定的方法有:BindJSON,``BindXML,BindQuery,BindYAML,BindHeader

可选绑定方法(也就是参数可以没有):

ShouldBind,ShouldBindJSON,ShouldBindXML,ShouldBindQuery,ShouldBindYAML,ShouldBindHeader

参数映射

package main

import (

"github.com/gin-gonic/gin"

"net/http"

)

type Login struct{

User string `form:"user" json:"user" xml:"user" yaml:"user" binding:"required"`

Password string `form:"password" json:"password" xml:"password" yaml:"password" binding:"required"`

}

func main() {

r :=gin.Default()

//form参数据绑定

r.POST("/t1", func(c *gin.Context) {

var login Login

//第一种参数form参数

//err :=c.ShouldBind(&login)

//if err != nil {

//c.JSON(http.StatusBadRequest,gin.H{"error":err.Error()})

//}

//第二种参数:接收url里的参数

//err :=c.BindQuery(&login)

//if err != nil {

//c.JSON(http.StatusBadRequest,gin.H{"error":err.Error()})

//return

//}

//第三种接收json格式

//err :=c.BindJSON(&login)

//if err != nil {

//c.JSON(http.StatusBadRequest,gin.H{"error":err.Error()})

//return

//}

//第四种接收xml格式

err :=c.ShouldBindXML(&login)

if err != nil {

c.JSON(http.StatusBadRequest,gin.H{"err":err.Error()})

return

}

c.JSON(http.StatusOK,gin.H{

"user":login.User,

"password":login.Password,

})

})

r.Run(":8080")

}

参数的验证

由于Gin框架里的关于验证方面的文章太少了,Gin框架也是使用了第三方包https://pkg.go.dev/gopkg.in/go-playground/validator.v9

更多的使用方法还是看这里的文档会比较好些

模板输出

这个模板的输出如果和php里的比较,确实有些不咋好用,好在现在基本上都是前后端分离了,所以只需要提供接口就可以了!

模板的操作

package main

import (

"github.com/gin-gonic/gin"

"net/http"

)

func main() {

r :=gin.Default()

r.LoadHTMLGlob("templ/*")

r.GET("/index", func(c *gin.Context) {

c.HTML(http.StatusOK,"index.html",gin.H{

"title":"标题123333",

})

})

r.GET("/index2", func(c *gin.Context) {

c.HTML(http.StatusOK,"index2.html",gin.H{

"title":"标题12aaaaad",

})

})

r.Run()

}

对应的模板

{{ define "index.html"}} //这里是标签需要与end标签同时出现

{{.title}}//后台传过来的数据

{{ end }} //结束标签

ps

如果有需要的关于编程技术方面的资料,可以在 wx公众号中搜索 北漂老李 来获取你喜欢的数据哦

展开阅读全文

页面更新:2024-03-31

标签:框架   知识点   路由   绑定   使用方法   后台   公众   接口   也就是   模板   参数   语言   标签   格式   标题   方法   数据   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top