2022年1月15日 星期六

【Let's Go】GoLang Gin 再來一小杯

 繼上次開喝Gin之後~~這次開始試著讓Gin發揮更實際的效用~~簡單介紹一下如何應用Gin這個好用的框架來建置網站!

同樣的~~我們這種非專業人士,就先不在意如何去將程式寫得多專業、多「冠冕堂皇」~~先著重如何簡單、明瞭的使用!所以~專業人士請無視,謝謝啦!

好囉~~~這次繼上次的開喝之後,接著來談如何在網站內添加網站內容!

這次先談以下四種情況:

1.如何在網頁上呈現「單純」的文字訊息。

2.如何設定Gin的HTML模板。

3.如何呼叫HTML模板。

4.如何將參數(資料)傳遞給HTML模板並呈現。

基本上若能按部就班走到第4點~~那後續就是如何將「整批」資訊(如多組使用者資訊、或是資料庫內容讀取等等)丟給HTML去呈現,這部分就放到下一次再做整理囉!(一次寫太多~太亂也太累~呵!)

一樣~~直接先上程式碼🐎了~~看得懂的就直接試試看吧!

package main

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

func hello(c *gin.Context) {
	c.String(200, "歡迎蒞臨GoLang Gin示範網站")
}

func home(c *gin.Context) {
	c.HTML(200, "index.html", "")
}

func welcome(c *gin.Context) {
	c.String(200, "歡迎蒞臨GoLang Gin旗艦示範中心")
}

func login(c *gin.Context) {
	data := "Wan Chih-Hsiang"
	c.HTML(200, "login.html", gin.H{
		"data": data,
	})
}

func main() {
	s := gin.Default()
	s.LoadHTMLGlob("templates/*")
	s.GET("/", hello)
	s.GET("/home", home)
	s.GET("/welcome", welcome)
	s.GET("/login", login)
	s.Run(":8080") // listen and serve on 0.0.0.0:8080
}


簡單註記一下其中幾個重點,方便回想!


對應上述四種本文要介紹的情形~~

1.上圖標記中的(1)(3)二段函式,就是單純的在指定網頁中呈現「文字內容」。以c.String(...)來設定網頁讀取狀況及內容。

2.設定網站的HTML模板:「s.LoadHTMLGlob("templates/*")」。設定網站HTML模板的存取目錄。

3.呼叫HTML模板的方式:上圖標記(2)的段落就是最單純的呼叫對應方式,以c.HTML(...)來設定網頁的回應及呼叫的HTML模板名稱(index.html)。

4.接著就是開始比較實用的如何將Go處理完的資料,傳遞給HTML模板呈現了:這部分的操作可分成二塊,第一塊是如何將資料進行傳送;第二塊是HTML模板如何接收、呈現資料。

  4-1.上圖標記中(4)的區塊,其中data變數就是要傳遞的資料,而在Gin中使用gin.H{資料組1,資料組2,...}的方式進行資料參數的傳遞。其中"data"是傳遞的參數名稱"data:"後的data則是傳遞的內容。

  4-2.那在HTML模板(login.html)中,要如何接收次傳遞參數並加以呈現呢??


其中{{.data}}就是要在HTML模板中,呈現Gin傳遞過來的"data"參數內容的語法。

好囉~~這次就先寫到這裡~~~主要是整理出如何在Gin中,去設定網頁對應函式、及做重要的引入HTML模板的操作,這塊OK之後~後面就是單純的GoLang資料處理與傳遞,在Gin的應用上就會更加實際與寬廣。

沒有留言:

張貼留言