前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GO语言学习:动态Web

GO语言学习:动态Web

作者头像
李海彬
发布2018-03-20 16:31:32
1.5K0
发布2018-03-20 16:31:32
举报
文章被收录于专栏:Golang语言社区

使用Golang中的模板template来实现在HTML中动态Web.

1.网络端口监听操作:

Web动态页面要使用http.HandleFunc()而不是http.Handle()

主函数实现代码如下:

代码语言:javascript
复制
func main() {
	http.HandleFunc("/info", infoHandler)
	err := http.ListenAndServe(":9090", nil)
	if err != nil {
		log.Fatal("ListenAndServe: ", err.Error())
	}
}

2. 模板template的使用:

首先要做HTML中插入字段供Golang使用。Golang的模板通过{{.}}来包含渲染时被替换的字段,{{.}}表示当前的对象,这个和java或者C++中的this类似,如果要访问当前对象的字段通过{{.data}},但是需要注意一点:这个字段必须是导出的(字段字母必须是大写的),否则在渲染的时候会报错。

golang实例代码:

代码语言:javascript
复制
<span style="font-size:12px;">type Infromation struct{
	Name string
}</span>

HTML代码:

switch.html

代码语言:javascript
复制
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Switch</title>
</head>
<body>
<h1>name is: {{.Name}}</h1>
<form method="post" action="/info">
	<p>Switch Key:<input type="submit" name="switch" value="switch" /></p>
</form>
</body>
</html>

3. 对页面进行响应、

首先生成模板

代码语言:javascript
复制
func ParseFiles(filenames ...string) (*Template, error)

然后填入字段并实现模板

代码语言:javascript
复制
func (t *Template) Execute(wr io.Writer, data interface{}) error

在函数中第二个参数data填入要实现的字段。

相关代码如下

代码语言:javascript
复制
func infoHandler(w http.ResponseWriter, r *http.Request) {
	info := new(Infromation)
	if r.Method == "GET" {
		info.Name = "A"
		t, err := template.ParseFiles("switch.html")
		if err != nil {
			http.Error(w, err.Error(),http.StatusInternalServerError)
			return
		}
			t.Execute(w, info)
			return
	} 
	if r.Method == "POST" {
	  fmt.Println("click")
		info.Name = "B"
		t, err := template.ParseFiles("switch.html")
		if err != nil {
			http.Error(w, err.Error(),http.StatusInternalServerError)
			return
		}
			t.Execute(w, info)
		return
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档