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