在go语言中,通过使用http包,可以非常简单快速地创建一个Web应用。同时使用template包,可以很方便的进行数据替换,如果结合CSS就已经能够进行简单的开发了。在接下来的几篇文章中,我们将通过几个例子来学习一下如何活用这些最基础的知识。
实例1
在上篇文章中,我们使用template,将替换后的信息输出到os.Stdout标准输出进行显示,在这个例子中,结合第一个web应用的例子,可以通过浏览器进行访问。
参考内容 | URL |
---|---|
Web应用 | http://blog.csdn.net/liumiaocn/article/details/54878953 |
模板实例 | http://blog.csdn.net/liumiaocn/article/details/54882507 |
例子代码
查看代码可以看出,除了模板的Execute方法的输出目的地从os.Stdout到http.ResponseWriter的response,其他没有任何区别。
[root@liumiaocn goprj]# cat basic-web-hello2.go
package main
import "fmt"
import "net/http"
import "html/template"
func Hello(response http.ResponseWriter, request *http.Request) {
type person struct {
Id int
Name string
Country string
}
liumiaocn := person{Id: 1001, Name: "liumiaocn", Country: "China"}
tmpl, err := template.ParseFiles("./user.tpl")
if err != nil {
fmt.Println("Error happened..")
}
tmpl.Execute(response, liumiaocn)
}
func main() {
http.HandleFunc("/", Hello)
http.ListenAndServe(":8080", nil)
}
[root@liumiaocn goprj]#
模板文件user.tpl内容
[root@liumiaocn goprj]# cat user.tpl
<html>
<head>
<title>Personal information</title>
</head>
<body style="text-align:center">
<h3>Person general infor</h3>
<hr>
<ul>
<li>Name: {{.Name}}<p>
<li>Id: {{.Id}} <p>
<li>Country: {{.Country}}
</ul>
<hr>
<h3>Hello, {{.Name}} Welcome to go programming...</h3>
</body>
</html>
[root@liumiaocn goprj]#
执行结果
[root@liumiaocn goprj]# go run basic-web-hello2.go
画面确认
总结
在单页应用日益广泛,go语言这样通过及其简单和方便的方式提供面向Web应用开发的标准包,对Web相关知识没有系统学习的新手来说还是具有很大的吸引力的一门语言的。