實作 - 從零開始用 Golang 寫網頁 - 03 套入 HTML 模板

[實作] 從零開始用 Golang 寫網頁 : 03 套入 HTML 模板

將 HTML 模板套入,並試著將數據替換對應的標籤,生成 HTML 字符串響應給瀏覽器

1
2
3
4
5
import (
"fmt"
"net/http"
"text/template"
)
  • import 多導入一個 text/template
1
2
3
4
5
6
7
8
9
10
11
12
13
func myWeb(w http.ResponseWriter, r *http.Request) {

t := template.New("index")

t.Parse("<div id='templateTextDiv'>Hi,{{.name}},{{.someStr}}</div>")

data := map[string]string{
"name": "kenny",
"someStr": "這是我的網站",
}

t.Execute(w, data)
}
  • 第一個方式
1
2
3
4
5
6
7
8
9
10
11
func myWeb(w http.ResponseWriter, r *http.Request) {

t, _ := template.ParseFiles("./templates/index.html")

data := map[string]string{
"name": "kenny",
"someStr": "這是我的網站",
}

t.Execute(w, data)
}
  • 第二個方式

myWeb : 第一個方式

  • 初始化一個 template 的變數,並用 Parse 將 HTML 字符串導入

myWeb : 第二個方式

  • 在目錄底下建立 templates 資料夾並加入 index.html 檔案
1
2
3
4
5
6
7
<html>
<head></head>
<body>
<div>Hello {{.name}}</div>
<div>{{.someStr}}</div>
</body>
</html>
  • 並在 myWeb 函式使用 ParseFiles 解析 index.html 檔案

    • t, _ := template.ParseFiles("./templates/index.html") 中的 _ 用來丟棄 error 返回值,在正常狀況下請不要丟棄 error

結果

tags: 實作 Golang 網站
Author: Kenny Li
Link: https://kennyliblog.nctu.me/2020/09/04/Golang-Web3/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.