愿所有的美好和期待都能如约而至

Gin框架简单入门(一)

.markdown-body pre,.markdown-body pre>code.hljs{color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selecto

发布时间:  来源:互联网  作者:匿名  标签:青训营笔记 入门 简单  热度:37.5℃

0.简要介绍

Gin框架是go语言的一款简单,快速的框架,开箱即用,十分方便 以下是Gin框架的优势

1.基本配置

首要问题是配置go的代理

# 注意需要加上引号
# 设置goproxy.io代理
go env -w GOPROXY="https://goproxy.io"
# 设置GO111MOUDLE
go env -w GO111MODULE="on"

然后安装gin框架

go get github.com/gin-gonic/gin

到这个文件夹下即可找到gin框架

如果安装gin框架失败,可以在goland中尝试安装

2.简要入门

安装完成之后进行测试

package main  
//导包
import (  
"github.com/gin-gonic/gin"  
"net/http"  
)  
  
func main() {  
r := gin.Default()  
r.GET("/hello", func(c *gin.Context) {  
c.JSON(http.StatusOK, gin.H{  
"message": "快速入门",  
})  
})  
r.Run(":8888")  //打开8888端口(如果没有这句话则默认打开8080端口)
}

此时在浏览器中即可访问

3.RESTful API

Representational State Transfer 表征状态转移/表现层状态转化

其含义就是客户端与web服务器进行通信交互的时候,使用HTTP协议的4个请求方法代表的不同动作

package main  
  
import (  
"github.com/gin-gonic/gin"  
"net/http"  
)  
  
func main() {  
r := gin.Default()  
r.GET("/info", func(c *gin.Context) {  
c.JSON(http.StatusOK, gin.H{  
"message": "获取信息",  
})  
})  
r.POST("/create", func(c *gin.Context) {  
c.JSON(http.StatusOK, gin.H{  
"message": "创建信息",  
})  
})  
r.PUT("/update", func(c *gin.Context) {  
c.JSON(http.StatusOK, gin.H{  
"message": "更新信息",  
})  
})  
r.DELETE("/delete", func(c *gin.Context) {  
c.JSON(http.StatusOK, gin.H{  
"message": "删除信息",  
})  
})  
r.Run(":8888")  
}

浏览器访问127.0.0.0:8888 然后按f12打开开发者选项 找到网络控制台 分别测试4种状态

4.渲染HTML

新建项目 新建templates文件夹 在这个文件夹之下新建index.html文件

<!DOCTYPE html>  
<html lang="en">  
<head>  
<meta charset="UTF-8">  
<title>Document</title>  
</head>  
<body>  
<h1>  
账号:{{.name}}  
</h1>  
<h1>  
密码:{{.pwd}}  
</h1>  
</body>  
</html>

新建main.go

package main  
  
import (  
"github.com/gin-gonic/gin"  
"net/http"  
)  
  
func main() {  
	r := gin.Default()
	r.LoadHTMLGlob("./templates/*")  
	r.GET("/demo", func(c *gin.Context) {  
	c.HTML(http.StatusOK, "index.html", gin.H{  
		"name": "admin",  
		"pwd": "123321",  
	})  
})  
	r.Run(":8888")  
}

渲染完之前的html页面是 渲染完之后的html页面是

5.Gin路由(Route)

路由就是在任何网络中选择路径的过程 路由方法有GET,POST,PUT,PATCH,DELETE,OPTIONS还有ANY 无参数GET 就是显示在首页的信息 比如显示127.0.0.1:8888的信息

r.GET("/",func(c *gin.Context*){
	c.String(http.StatusOK,"Who are you?")
})

获取Query参数

// 匹配users?name=xxx&role=xxx,role可选  
r.GET("/users", func(c *gin.Context) {  
	name := c.Query("name")  
	role := c.DefaultQuery("role", "teacher")  
	c.String(http.StatusOK, "%s is a %s", name, role)  
})

结果

Tom is a student

勇敢去编程!

勇敢的热爱编程,未来的你一定会大放异彩,未来的生活一定会因编程更好!

TOP