龙空技术网

Golang从入门到精通,Gin多种形式的返回值

tinygo 197

前言:

现时同学们对“html返回值”大致比较关怀,大家都需要分析一些“html返回值”的相关资讯。那么小编也在网摘上收集了一些有关“html返回值””的相关知识,希望咱们能喜欢,兄弟们一起来了解一下吧!

Golang Gin返回json、HTML (模板继承)、string

Golang Gin返回Json、HTML 、模板继承、模板引入、String代码及解析

package mainimport (	"github.com/gin-contrib/multitemplate"	_ "github.com/gin-contrib/multitemplate"	"github.com/gin-gonic/gin"	"log"	"net/http")//创建HTML Render渲染器func createRender() multitemplate.Renderer {	//创建Render渲染器,赋值给r	//func NewRenderer() Renderer	r := multitemplate.NewRenderer()	//渲染html文件,	//name string:调用模板的名字,注意,以后在使用func (c *Context) HTML(code int, name string, obj interface{})的时候,name string和这里的name string是匹配的。	//files ...string:需要渲染的文件。如果是多文件渲染时,以最后的一个文件为主,前面的文件作为被继承、被包含等使用	//func (Renderer) AddFromFiles(name string, files ...string) *template.Template	r.AddFromFiles("index1", "base/base.html", "html/index.html")	r.AddFromFiles("include", "base/base.html", "html/include.html", "html/include_page.html")	r.AddFromFiles("admin", "html/admin.html")	r.AddFromFiles("users", "base/base.html", "html/users.html")	return r}func main() {	//设置log的标记,log.LstdFlags为标准输出,有日期和时间,log.Llongfile为文件的长文件名和行号	log.SetFlags(log.LstdFlags | log.Llongfile)	//定义默认的引擎,该实例已经连接了记录器Logger()和恢复中间件Recovery()。	//engine.Use(Logger(), Recovery())	app := gin.Default()	//加载HTML渲染器	app.HTMLRender = createRender()	//静态目录,浏览时,显示文件目录内容,当访问/static_file时,以目录、文件列表形式显示。	app.StaticFS("/static_file", gin.Dir("static", true))	//静态目录,浏览时,不显示文件目录内容,当访问/static时,目录、文件不显示。	app.Static("/static", "static")	//处理/index的GET方法,	//HTML呈现由其文件名指定的HTTP模板。它还更新了HTTP代码,并将内容类型设置为“文本/html”。	app.GET("/index", func(c *gin.Context) {		//c.HTML():返回是内容类型为"text/html",		//第一个参数:返回的状态码		//第二个参数:渲染的文件的名,这里不是文件名,是文件对应name,在r.AddFromFiles()中定义的name		//第三个参数:传递到模板的参数,不传递,写nil。		//在模板中,通过继承了base.html进行渲染输出,具体看index.html的语法		c.HTML(http.StatusOK, "index1", nil)	})	app.GET("/include", func(c *gin.Context) {		//在模板中,通过继承了base.html进行渲染输出,在渲染过程中,同时渲染了"html/include.html",在"html/include_page.html"通过{{template "include.html"}}进行导入。		c.HTML(http.StatusOK, "include", nil)	})	app.GET("/admin", func(c *gin.Context) {		//在模板渲染中,只渲染了,没有继承base.html,因此不能使用继承。		c.HTML(http.StatusOK, "admin", nil)	})	app.GET("/users", func(c *gin.Context) {		//在模板渲染中,渲染了"base/base.html"和 "html/users.html",因此可以继承base.html,		//在第三个参数中,传递了map,map中,键status,值是200,因此可以在模板中通过使用{{.status}}进行使用		c.HTML(http.StatusOK, "users", gin.H{			"status": 200,		})	})	app.GET("/json", func(c *gin.Context) {		//显示JSON,设置了Content-Type为 "application/json",内容是gin.H定义的mao。		c.JSON(http.StatusOK, gin.H{			"status":  200,			"name":    "张无忌",			"age":     18,			"address": "武当",		})	})	app.GET("/string", func(c *gin.Context) {		//返回字符串,第二个参数为显示的内容		c.String(http.StatusOK, "今天是星期一,天气挺好的,周芷若当了峨眉派的掌门")	})	app.GET("/string_format", func(c *gin.Context) {		//返回字符串,第二个参数为内容的格式,第三个及以后的分别是第二个参数的内容替换		c.String(http.StatusOK, "今天是%v,天气挺%v的,%v当了%v的%v", "星期一", "好", "张无忌", "明教", "教主")	})	//运行在127.0.0.1的IP地址上的TCP 80端口	_ = app.Run("127.0.0.1:80")}

标签: #html返回值