Golang 转生到web世界 - Gin HTML渲染

Golang

Gin HTML渲染

首先我们需要在程序码所在的资料夹下,建立一个view的资料夹,并且在该资料夹下建立一个简单的html档案。

<html>
    <h1>
        {{ .title }}
    </h1>
</html>

这个{{ }} 应该不陌生啦!

使用 LoadHTMLGlob ()来读取html所在的位置(所以LoadHTMLGlob所指定的资料夹名称需要跟自己建立的相同),c.HTML 所指定hello.html必须是要跟html档案相呼应。

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	router := gin.Default()
	router.LoadHTMLGlob("view/*")
	router.GET("/index", func(c *gin.Context) {
		c.HTML(http.StatusOK, "hello.html", gin.H{
			"title": "hello~ html",
		})
	})

	router.Run(":8000")
}

我们也可以有多层结构的做法
router.LoadHTMLGlob("templates/**/*")

当然route也可以做多个来使用罗

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	router := gin.Default()
	router.LoadHTMLGlob("view/**/*")
	router.GET("/index", func(c *gin.Context) {
		c.HTML(http.StatusOK, "users/user.html", gin.H{
			"title": "hello",
		})
	})
	router.GET("/users/index2", func(c *gin.Context) {
		c.HTML(http.StatusOK, "users/user.html", gin.H{
			"title": "Users",
		})
	})
	router.Run(":8000")
}

但这边要注意的是如果有用多层的话,HTML的内容需要调整一下
必须要加上,要特别注意的是他是开头跟结尾夹着,这部分我一开始没注意到有结尾的end,导致跑不出来。缺一不可唷
{{ define "users/user.html" }} …. {{ end }}

否则会报错唷
参考如下:

{{ define "users/user.html" }}
<html>
    <h1>
        {{ .title }} user
    </h1>
</html>
{{ end }}

<<:  Day10 - 除噪模型

>>:  Day 07 : Squares of a Sorted Array

Day 16:把做好的 HTML 加入 Angular 吧!

三天前,我们已成功把静态档案加入 Angular 的专案了,如果感到有点陌生,可以再到以下连结,重新...

【企业 WFH 新型态,文件加密护资安】活动分享

跟大家分享一个线上研讨会,有兴趣的可以参考喔~ 居家办公、分流上班等远距办公的企业模式,俨然默默地成...

13 出牌倒数要怎麽做才好?

整理一下算分数方法 这个方法实在太扯了,他很明显的有分成三个区块, 用 round 拿到该范围的卡 ...

Day 23 [Python ML、资料视觉化] 直方图、密度图

设定jupyter notebook import pandas as pd pd.plotting...

Day-19 承载游戏梦想的南蛮黑船 XBOX 再启航

微软也做游戏机!这种在现在听来理所当然的事情、发生在 20 年前、其实还是让人感到挺震惊的。而当时诞...