繼上次開喝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的應用上就會更加實際與寬廣。
沒有留言:
張貼留言