GO:如何将数据发布到数据存储中?

1)通过模板方法呈现登录页面。例如:这是 index.html


{{ define "title" }}Guestbook{{ end }}


    {{ define "content" }}

        <form action="/login" method="post">

          <div><label>UserName : </label><input name="username" type="text" /></div>

          <div><label>Password : </label><input name="password" type="password" /></div>

          <div><input type="submit" value="login"></div>

        </form>


    {{ end }}

2) hello.go 文件:


package main


import (

  "fmt"

  "html/template"

  "net/http"

)


var index = template.Must(template.ParseFiles(

  "templates/base.html",

  "templates/index.html",

))

type UserLogin struct{

    UserName string

    PassWord string

}



func handler(w http.ResponseWriter, r *http.Request) {  

    index.Execute(w, nil)    

}




/*func login(w http.ResponseWriter, r *http.Request) {  

        remPartOfURL := r.URL.Path[len("/login/"):] 

        if r.Method == "POST" {

           fmt.Fprintf(w, "after",r.FormValue("username"))       

        }   

        fmt.Fprintf(w, "Hello %s!", remPartOfURL)

    }*/

    func login(w http.ResponseWriter, r *http.Request) {    

        fmt.Fprint(w, "login : ", "\n")

    remPartOfURL := r.URL.Path[len("/login/"):]     

    if r.Method == "POST" {         

        g := UserLogin{

            UserName: r.FormValue("username"),

            PassWord: r.FormValue("password"),

        }

        fmt.Fprint(w, "&g : ", &g,"\n")  

    } 

    fmt.Fprintf(w, "Hello %s!", remPartOfURL)   

   }



func init() {

    http.HandleFunc("/", handler)

    http.HandleFunc("/login/", login)

}

问题:点击登录按钮后: &g 应该打印用户名和密码值,但显示为空: &g : &{ } 可以做什么?


互换的青春
浏览 195回答 1
1回答

HUH函数

您可以尝试的一件事是用fmt.Fprintf语句替换http.Error语句。例如替换:fmt.Fprintf(w,&nbsp;"after",r.FormValue("username"))和:http.Error(w,&nbsp;fmt.Sprintf("after&nbsp;%s",&nbsp;r.FormValue("username")),&nbsp;http.StatusOK)您正在直接写入http.ResponseWriter可能会导致问题的内容。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go