初识gin框架

Gin框架介绍及使用

Gin是一个用Go语言编写的web框架。
它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。
如果你是性能和高效的追求者, 你会爱上Gin。
Go世界里最流行的Web框架,Github上有32K+star。 基于httprouter开发的Web框架。 中文文档齐全,简单易用的轻量级框架。

安装

go get -u github.com/gin-gonic/gin
  • 如果是goland的话,直接导入,然后点自动导入就行。
  • 来看下实例吧 !

gin简单实例

package main
import (
	"github.com/gin-gonic/gin"
	"net/http"
)
func sayHello(c *gin.Context){
	c.JSON(200,gin.H{
		"message":"hello golang!",
	})
}

func main() {
	// 创建一个默认的引擎
	r := gin.Default()
	// 指定用户使用get请求访问/hello时,执行sayheelo这个函数
	r.GET("/hello",sayHello)
	// 启动服务
	r.Run(":9090")
}

初识gin框架

  • 这样就可以做到一个浏览器和服务器的交互拉
  • 但是这还存在另一个问题,我们知道,http请求他有很多类型
  • 例如 GET、POST、PUT、DELETE等等。但是浏览器只能对GET进行查看,如果没有特殊处理的话。
  • 所以这里我们要借助一下Postman工具,就可以对其他类型的请求进行查看。例如我们在代码里面添加几个其他的请求。
	r.POST("/book", func(c *gin.Context) {
		c.JSON(http.StatusOK,gin.H{
			"method":"POST",
		})
	})

	r.PUT("/book", func(c *gin.Context) {
		c.JSON(200,gin.H{
			"method":"PUT",
		})
	})

	r.DELETE("/book", func(c *gin.Context) {
		c.JSON(200,gin.H{
			"method":"DELETE",
		})
	})

初识gin框架

  • 通过工具我们可以看到,里面有针对各种各样请求的一个检测,下方也会对不同的请求给出响应。
  • 这样我们就可以对gin框架进行一系列的完善的检测了。

然后我们套入HTML文件来试试了,那么开始gin学习之前呢,我们应该先把Template给学会哈,这样学起来会更加方便一点。

Go_Template详解文章链接

  • 学完这个后,我们就可模板进行一个动态数据的绑定了!
  • 但是我们这学习的时候,用的是go自带的net/http包来实现web的访问,接下来,我们就要学习,gin框架如何对对模板进行渲染。

gin框架模板渲染

  • 七米老师常说哈,遇事不决,写注释
  • 模板渲染,永远的三步满: 模板定义模板解析模板渲染
  1. 模板的定义

就是搞个 tmpl文件,内容和html一样

初识gin框架

  1. 模板的解析
	// 模板的解析
	r.LoadHTMLFiles("gin_HTML/templates/index.tmpl")
  1. 模板的渲染
	// 模板的渲染
	r.GET("/index", func(c *gin.Context) {
		// http请求状态码
		// gin.H 在本质上就是一个map,用于存放一次性导入模板的数据
		c.HTML(http.StatusOK,"index.tmpl",gin.H{
			"title":"www.baidu.com",
		})
	})
	// 让服务器跑起来,启动server
	r.Run(":9090")
  • 前面也说过,使用gin框架的话要使用r.run进行开启服务。

初识gin框架

  • 开启后进行访问,完美哈!!!

当出现多个模板的时候,我们该如何进行模板的渲染呢,

多个模板渲染

  • 首先给模板设置一个名称 固定的名称

初识gin框架

{{define "index.html"}}
	html内容
{{end}}

然后在 解析模板 的时候要就有两种方式了

	r.LoadHTMLGlob("templates/**/*")  // 第一种
	r.LoadHTMLFiles("templates/posts/index.html", "templates/users/index.html")  //第二种
  • 两种都可以,推荐使用第一种,啊哈哈哈哈哈
样式 含义
** 所有目录文件
* 所有的模板文件
  • 渲染都是一样的操作哈,简单吧!!!

gin框架如何自定义函数

  • 在前面的文章里面也有说过自定义函数哈,但是我们的gin框架更加的方便简洁呢。
  • 同样的我们做一个 safe 函数,对内容进行转义,
  • 我们都知道 html/tamplate包下面是安全的满,所有的内容都会被文本化,用于防止html注入。
  • 但是有的时候我们需要将内容进行转义,所以我们就需要进行自定义函数的设置了

初识gin框架

  • 可以看到哈,这是没有进行转义后的内容,然后我们自己做一个自定义的函数, safe

初识gin框架

初识gin框架

  • 这就是自定义函数拉,是不是超级方便,直接setfuncmap即可。
  • 文本内容也成功的被转义过来了

静态文件的引入

  • 这个就是引入一些静态的资源,比如 js文件 , css文件等等。
  • 我们只需要按照以下方式在渲染页面前调用gin.Static方法即可。
func main() {
	r := gin.Default()
	// 指定两个地方,一个是用来引用的名称  , 一个是静态资源存放的位置。
	r.Static("/static", "./static")
	r.LoadHTMLGlob("templates/**/*")
   // ...
	r.Run(":8080")
}

初识gin框架

  • 然后再html页面进行引用

初识gin框架

  • 非常的生动形象哈!

好了好了,今天就到这里吧!!

上一篇:邻接表转换为逆邻接表


下一篇:Gin框架路由