一、安装gin包和热加载包
首先终端新建一个main.go
然后go mod init ‘项目名称’
执行以下命令 安装gin包
go get - u github. com/ gin- gonic/ gin
终端安装热加载包
go get github. com/ pilu/ fresh
终端输入fresh 运行 ,之后文件的改动,项目自动重新热加载
fresh
简单示例代码
package main
import (
"github.com/gin-gonic/gin"
)
func main ( ) {
r := gin. Default ( )
r. GET ( "/" , func ( c * gin. Context) {
c. String ( 200 , "你好,gin" )
} )
}
二、路由简单场景总结
返回string数据
r := gin. Default ( )
r. GET ( "/" , func ( c * gin. Context) {
c. String ( 200 , "你好,gin" )
} )
r. POST ( "/ping" , func ( c * gin. Context) {
c. String ( http. StatusOK, "你好,gin" )
} )
返回json数据
r. GET ( "/json" , func ( c * gin. Context) {
c. JSON ( http. StatusOK, gin. H{
"code" : 200 ,
"data" : gin. H{
"name" : "张三" ,
"age" : 18 ,
} ,
} )
} )
返回结构体
type Article struct {
Title string `json:"title"`
Desc string `json:"desc"`
Content string `json:"content"`
}
r. GET ( "/json1" , func ( c * gin. Context) {
a := & Article{ Title: "标题" , Desc: "描述" , Content: "内容" }
c. JSON ( http. StatusOK, gin. H{
"code" : 200 ,
"data" : a,
} )
} )
jsonp返回
type Article struct {
Title string `json:"title"`
Desc string `json:"desc"`
Content string `json:"content"`
}
r. GET ( "/jsonp" , func ( c * gin. Context) {
a := & Article{ Title: "标题-jsonp" , Desc: "描述" , Content: "内容" }
c. JSONP ( http. StatusOK, gin. H{
"code" : 200 ,
"data" : a,
} )
} )
返回XML
r. GET ( "/xml" , func ( c * gin. Context) {
c. XML ( http. StatusOK, gin. H{
"code" : 200 ,
"title" : "小米SU7" ,
} )
} )
返回模版 html
r. GET ( "/html" , func ( c * gin. Context) {
c. HTML ( http. StatusOK, "goods.html" , gin. H{
"code" : 200 ,
"title" : `小米SU7` ,
} )
< h1 class= "text-center my-4" > { { . title} } < / h1>
r. GET ( "/html" , func ( c * gin. Context) {
b := & Article{ Title: "小米SU7年轻人的第一辆车" , Desc: "描述" , Content: "内容" }
c. HTML ( http. StatusOK, "goods.html" , gin. H{
"code" : "200" ,
"data" : b,
} )
} )
{ { $t := . data. Title} }
< h3> { { $t} } < / h3>
{ { with . data} }
< p> { { . Title} } < / p>
{ { end} }
r. GET ( "/html" , func ( c * gin. Context) {
c. HTML ( http. StatusOK, "goods.html" , gin. H{
"code" : "200" ,
"price" : 50 ,
} )
} )
< ! -- 条件判断 eq 相等 / ne 不相等 / gt 大于 / lt 小于 / ge 大于等于 / le 小于等于 -- >
{ { if ge . price 80 } }
< p> 有点贵: { { . price} } < / p>
{ { else if lt . price 10 } }
< p> 有点便宜: { { . price} } < / p>
{ { else } }
< p> 价格: { { . price} } < / p>
{ { end} }
r. GET ( "/html" , func ( c * gin. Context) {
c. HTML ( http. StatusOK, "goods.html" , gin. H{
"code" : "200" ,
"hobby" : [ ] string { "小米" , "SU7" , "YU7" } ,
} )
} )
< ! -- 循环遍历数据 -- >
{ { range $key, $value := . hobby} }
< li> { { $key} } -- - { { $value} } < / li>
{ { else } }
< p> 没有数据< / p>
{ { end} }