go语言 html 模板语法,go语言快速入门:template模板
使用過AngularJS應該都會對ng-model的方式印象深刻,類似于Spring的值綁定,使用起來非常的方便。而go的標準庫中也有相關的功能為Web開發提供簡單但卻有非常有用的功能,這就是template。本文將通過兩個簡單的例子來講解一下如何使用go語言中的template。
template
template從初學者最容易理解地角度主要使用來替換,之所以叫做模板是因為其由靜態內容和動態替換內容組成,根據動態內容的變化而最終生成客戶端確認到的不同的內容信息,這就是模板的重要作用,從這個角度來說,設計模式的Template多少也有這么點意思。
如下圖所示,模板的內容為hello {Name},其中不變的為hello,變化的為{Name},通過從結構體中取得其成員變量Name與之進行替換,最終輸出為所需要的信息。
這里寫圖片描述
例子代碼
在這個例子中,我們將會簡單實現上圖所示的簡單功能。
項目內容
模板內容Hello, {{.Name}} Welcome to go web programming…
期待輸出Hello, liumiaocn Welcome to go web programming…
~~~
package main
import "fmt"
import "html/template"
import "os"
func main() {
type person struct {
Id int
Name string
Country string
}
liumiaocn := person{Id: 1001, Name: "liumiaocn", Country: "China"}
fmt.Println("liumiaocn = ", liumiaocn)
tmpl := template.New("tmpl1")
tmpl.Parse("Hello {{.Name}} Welcome to go programming...\n")
tmpl.Execute(os.Stdout, liumiaocn)
}
~~~
和其他語言具有反射機制一樣,需要注意變量的名稱一致。而go語言還需要注意寫法正確({{.}}),開頭字母大寫。
執行結果
~~~
liumiaocn = {1001 liumiaocn China}
Hello liumiaocn Welcome to go programming...
~~~
應用場景
看完這個實例如果有AngularJS或者其他模板開發經驗者可能已經能夠清楚地知道template的應用場景以及為何它是出現在web應用的http包中。沒有這方面基礎的可能只會覺得這僅僅是一個替換而已。
這樣我們再使用一個例子,來實現一個替換,場景為有如下這樣一個html頁面,用來顯示上述結構體person的詳細信息。具體html模板頁面的內容如下
~~~
Personal informationPerson general infor
- Name: {{.Name}}:
- Id: {{.Id}}
- Country: {{.Country}}
~~~
例子代碼
由靜態不變的內容和動態變化的內容結合起來所形成的模板文件tmpl1.html。在接下來的這個例子中,通過先行讀入template文件tmpl1.html,然后注入數據生成結合了數據的最終結果頁面。
~~~
package main
import "fmt"
import "html/template"
import "os"
func main() {
type person struct {
Id int
Name string
Country string
}
liumiaocn := person{Id: 1001, Name: "liumiaocn", Country: "China"}
fmt.Println("liumiaocn = ", liumiaocn)
tmpl, err := template.ParseFiles("./tmpl1.html")
if err != nil {
fmt.Println("Error happened..")
}
tmpl.Execute(os.Stdout, liumiaocn)
}
~~~
需要注意模板文件的格式錯誤經常會出現運行時的panic,注意檢查。
執行結果
可以看到,模板的內容全部被正確替換。
~~~
liumiaocn = {1001 liumiaocn China}
Personal informationPerson general infor
- Name: liumiaocn:
- Id: 1001
- Country: China
~~~
總結
通過html/template包等,go提供了諸如Parse/ParseFiles/Execute等方法可以從字符串或者文件加載模板然后注入數據形成最終要顯示的結果。當然實際的情況會遠不止如此簡單,比如嵌套和多個模板文件如何更好的組合都需要我們進行進一步的探索和學習。

總結
以上是生活随笔為你收集整理的go语言 html 模板语法,go语言快速入门:template模板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: htc desire 10 pro an
- 下一篇: Android多模块覆盖率,Androi