D 的个人博客

全职做开源,自由职业者

  menu

Go Web 开发(二)

目的

了解使用 Go 模板技术开发 Web 应用的。

效果

代码

server.go

package main

import (
    "fmt"
    "http"
    "template"
)

type User struct {
    Name    string
}

func Register(w http.ResponseWriter, r *http.Request) {
    if "GET" == r.Method {
        fmt.Fprintln(w, "<h1>Register</h1>" +
            "<form action='/' method='POST'>" +
            " User Name: <input name='userName' value='Type in your name'/><input type='submit' value='Register'/>" +
            "</form>")
        return
    }

    user := &User{r.FormValue("userName")}
    t, _ := template.ParseFile("hello.html", nil)
    t.Execute(w, user)
}

func main() {
    http.HandleFunc("/", Register)
    http.ListenAndServe(":8080", nil)
}

hello.html

<h1>Hello, {Name}</h1>

总结

  • 自动解析类型字段
  • 模板需要自行编程进行缓存

下一步

  • 数据持久化

 ----

Updates:

Nov 26, 2011 - 把图片移到了 SkyDrive