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 \n")
tmpl.Execute(os.Stdout, liumiaocn)
学校网站免费html模板
}
~~~
和其他语⾔具有反射机制⼀样,需要注意变量的名称⼀致。⽽go语⾔还需要注意写法正确({{.}}),开头字母⼤写。
执⾏结果
~~~
liumiaocn = {1001 liumiaocn China}
Hello liumiaocn Welcome to
~~~
应⽤场景
看完这个实例如果有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等⽅法可以从字符串或者⽂件加载模板然后注⼊数据形成最终要显⽰的结果。当然实际的情况会远不⽌如此简单,⽐如嵌套和多个模板⽂件如何更好的组合都需要我们进⾏进⼀步的探索和学习。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。