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 關注
- 74 瀏覽
添加回答
舉報