日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go语言 html 模板语法,go语言快速入门:template模板

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 information

Person 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 information

Person general infor


  • Name: liumiaocn:
  • Id: 1001
  • Country: China

~~~

總結

通過html/template包等,go提供了諸如Parse/ParseFiles/Execute等方法可以從字符串或者文件加載模板然后注入數據形成最終要顯示的結果。當然實際的情況會遠不止如此簡單,比如嵌套和多個模板文件如何更好的組合都需要我們進行進一步的探索和學習。

![](https://box.kancloud.cn/032176b8778dbc41f1ce6b79a83d59c1_900x350.jpg)

總結

以上是生活随笔為你收集整理的go语言 html 模板语法,go语言快速入门:template模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩av不卡一区 | 日韩中文字幕av在线 | 香蕉视频国产 | 国产www色| 欧美日韩一区二区三区四区 | 三上悠亚在线一区 | 国产欧美精品一区二区在线播放 | 久久艹综合| www.97av| 一区二区美女 | 欧美精品国产 | 欧美精品色呦呦 | 国产经典自拍 | 欧美三日本三级少妇三 | 动漫玉足吸乳羞免费网站玉足 | 国产美女作爱全过程免费视频 | 免费看欧美黑人毛片 | 国产好片无限资源 | 韩国伦理电影免费在线 | 超碰人人射 | 亚洲成人精品在线观看 | 91精品国产色综合久久不卡电影 | 久久精品国产99久久不卡 | 国产精品手机在线 | 丰满少妇高潮久久三区 | 大香蕉视频一区二区 | 国产女教师bbwbbwbbw | 反差在线观看免费版全集完整版 | 久久美女精品 | av草逼| 亚洲成人乱码 | 天天干,夜夜爽 | 国产美女视频 | 一二三不卡 | 免费观看污 | 欧美日本韩国一区 | 国产精品99久久久久久久女警 | 神马午夜电影一区二区三区在线观看 | 欧美激情一二三区 | 中文字幕丰满乱子伦无码专区 | 国产精品久久久久99 | av在线视 | 久久久精品免费 | www.com毛片 | 欧美日韩大片在线观看 | 欧美日韩免费看 | 国产模特av私拍大尺度 | 日韩午夜精品 | 少妇又色又紧又黄又刺激免费 | 免费黄色大片网站 | 网站在线观看你懂的 | 亚洲视频在线免费 | 日本呦呦 | 天天伊人网 | 国产老肥熟 | 91色九色| 日韩欧美在线观看 | 禁断介护av一区二区 | 成人精品视频在线播放 | 亚洲最大的成人网 | 中文字幕在线有码 | 在线观看污污网站 | 中文字幕在线日亚洲9 | 午夜18视频在线观看 | 亚洲综合一区二区三区 | 欧美h网站 | 亚洲精品无码久久 | 三级免费黄 | 久久综合伊人77777蜜臀 | 蜜臀一区二区三区精品免费视频 | 国产精品1页 | 全部毛片永久免费看 | 美女黄色一级视频 | 亚洲3p | 久艹在线观看 | 91蜜桃| 亚洲综合精品视频 | 竹菊影视日韩一区二区 | 91精品国自产 | 禁断介护av | 青娱乐超碰在线 | av一区二区在线观看 | 最新免费av | 香蕉网站在线观看 | 免费视频黄色 | 欧美三级午夜理伦三级老人 | 午夜日韩 | 亚洲啪av永久无码精品放毛片 | 不卡网av| 欧美激情性做爰免费视频 | 成人国产精品一区二区 | 日本aⅴ视频 | 国产精品一区二区人人爽 | 国产特黄一级片 | 欧美成人aaa片一区国产精品 | 中文字幕欧美专区 | 成人激情在线视频 | 亚洲熟乱 | 国产尤物av尤物在线看 |