iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
自我挑戰組

go go let's go - golang 從0開始系列 第 17

Golang 轉生到web世界 - template

  • 分享至 

  • xImage
  •  

Golang

玩一下html template

如果golang要使用作為網站的話,不太可能都只靠print來處理事情,所以其實如果需要HTML檔案的話,是也可以使用Temaple這個套件來輔助完成。(所以我們需要在import 引用"html/template"這個套件。

下面是一個很簡單的範例,當然不可能僅是這樣而已!
我們需要在自己的程式執行區域,建立一個資料夾,我自己是建立一個view的資料夾,然後建立一個檔案index.html,裡面大概大概寫個html code

index.html

<div>hello gogo</div>

然後go的檔案如下,之後一樣要執行檔案唷!

package main

import (
	"html/template"
	"net/http"
)

func tmpl(w http.ResponseWriter, r *http.Request) {
	t1, err := template.ParseFiles("view/index.html")
	if err != nil {
		panic(err)
	}
	t1.Execute(w, "hello world")
}

func main() {

	http.HandleFunc("/", tmpl)

	http.ListenAndServe(":8000", nil)
}

這樣執行起來,就會發現輸入localhost:8000就有看到我們的index.html了。

那如果要傳變數的話呢 該如何處理?

此時我們需要在html中變化成這樣,目前看起來是把title 作為一個變數並且等待接值

<div>hello, gogo</div>
<h1>{{ .Title }}</h1>

Golang的程式碼

package main

import (
	"html/template"
	"net/http"
)

func tmpl(w http.ResponseWriter, r *http.Request) {
	t1, err := template.ParseFiles("view/index.html")
	if err != nil {
		panic(err)
	}
	t1.Execute(w, struct {
		Title string
	}{
		"My Title is gogo",
	})
}

func main() {

	http.HandleFunc("/", tmpl)

	http.ListenAndServe(":8000", nil)
}

執行看看囉!!!

這樣初步就可以run起來一個簡單的golang搭配html template的方式,但其實這樣的模式真的只會在練習或者自用的情境下才可能真的如此應用,所以還是得找一下golang的MVC框架來玩看看囉!!!


上一篇
Golang 轉生到web世界 - 檔案操作
下一篇
Golang 轉生到web世界 - 套件管理
系列文
go go let's go - golang 從0開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言