gpt4 book ai didi

google-app-engine - GO:如何将数据发布到数据存储区?

转载 作者:数据小太阳 更新时间:2023-10-29 03:29:28 24 4
gpt4 key购买 nike

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 : &{ }可以做什么?

最佳答案

您可能会尝试将 fmt.Fprintf 语句替换为 http.Error声明。

例如替换:

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

与:

http.Error(w, fmt.Sprintf("after %s", r.FormValue("username")), http.StatusOK)

您正在直接写入 http.ResponseWriter,这可能会导致问题。

关于google-app-engine - GO:如何将数据发布到数据存储区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17163932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com