我有一个webapp,我的代码如下:
func handler (w res, r req) {
if req.Method == POST {
// create html form 2 with a submit button2
return ;
}
// create html form 1 with a submit button1
return
}
func main() {
handle("/", handler)
}
现在,root /是使用处理程序func注册的。在第一个请求(GET)中,我创建了一个表单并将其发送给用户。如果用户提交此表单,我会在“POST”方法下处理它。现在,我在post方法处理程序中创建了一个不同的表单,现在我想要一种方法来根据用户在这个form2中输入的内容做一些操作,当[s]提交form2时。
go处理form2表单提交的标准方法是什么?我之前做过一些asp编程,我们使用表单操作提交到不同的asp文件。如何根据解析form2提交请求执行某些操作?
答案 0 :(得分:4)
如果我正确理解您,您想要一种基于请求方法而不仅仅是路径将相同URL路由到不同处理程序的方法吗?如果是这样的话......
为了比较,使用Python + Django,你这样做的方式非常标准:
def my_django_view(request):
if request.method == "POST":
try_to_process_posted_data()
elif request.method == "GET":
show_a_form_to_user()
如果您正在尝试根据路径和请求方法(GET,POST,DELETE,...)进行基于URL路由的更高级的事情,那么您可能会对{{3 }}
它提供了一些友好的URL路由方法:
func main() {
router := mux.NewRouter()
router.HandleFunc("/", YourGETHandlerFunc).Methods("GET")
router.HandleFunc("/", YourPOSTHandlerFunc).Methods("POST")
http.Handle("/", router)
}
如果您正在寻找更多用于网络开发的资源......