1 回答
TA贡献1797条经验 获得超6个赞
下面是你的关于处理程序的外观示例。请记住,该示例只是使用单个处理程序处理 GET 和 POST 请求的通用结构的图示。据我所知,您问题中的代码包含许多其他逻辑错误,您仍然需要解决这些错误。
请注意,呈现模板和处理数据输入的逻辑在 GET 和 POST HTTP 方法之间拆分。某些路由器允许基于方法的处理程序注册,在这种情况下,您可以有两个单独的处理程序,一个用于,另一个用于或某物。showAboutcreateAbout
考虑到块的结构,此示例中的语句的使用是不必要的,但是,我确实包含它们以明确说明,一般来说,一旦您写入响应,您就不应该有任何其他响应写入代码:no ,不再调用等。returnif-elsehttp.RedirectExecuteTemplate
func handleAbout(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
if data_is_present {
if err := t.ExecuteTemplate(w, "about.html", nil); err != nil {
fmt.Println(err)
}
return
} else if data_is_NOT_present {
if err := t.ExecuteTemplate(w, "aboutform.html", nil); err != nil {
fmt.Println(err)
}
return
}
} else if r.Method == "POST" {
content := r.FormValue("content")
inserted := database.Insertdata("about", content)
if inserted == true {
d := struct{ Aboutdata string }{Aboutdata: content}
if err := t.ExecuteTemplate(w, "about.html", d); err != nil {
fmt.Println(err)
}
return
} else {
fmt.Println("About is not inserted")
return
}
}
}
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报
