用了大半天时间,尝试Go接收Form表单数据,终于成功。
使用的package及知识点主要为net/http, htmp/template
代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 
 | package main
 import (
 "net/http"
 "fmt"
 "html/template"
 )
 
 func main() {
 http.HandleFunc("/", handle)
 http.ListenAndServe(":5000", nil)
 }
 
 func handle(w http.ResponseWriter, req * http.Request) {
 w.Header().Set("Content-Type", "text/plain")
 
 url := req.URL.Path
 if url == "/" {
 w.Write([]byte("hello, world!.\n"))
 }else{
 http.HandleFunc("/login", login)
 }
 }
 
 func login(w http.ResponseWriter, r *http.Request) {
 fmt.Println("method:", r.Method) //获取请求的方法
 r.ParseForm()
 
 if r.Method == "GET" {
 t, _ := template.ParseFiles("login.gtpl")
 t.Execute(w, nil)
 } else {
 //请求的是登陆数据,那么执行登陆的逻辑判断
 fmt.Println("username:", r.Form["username"])
 fmt.Println("pssword:", r.Form["password"])
 }
 }
 
 
 | 
登录模板login.gtpl
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | <html><head>
 <title>login</title>
 </head>
 <body>
 <form action="/login" method="post">
 用户名:<input type="text" name="username"><br>
 密码:<input type="password" name="password">
 <input type="submit" value="登陆">
 </form>
 </body>
 </html>
 
 |