转到HTTP处理程序 - 处理两个以上的表单操作

时间:2012-05-23 08:42:55

标签: go

我有一个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提交请求执行某些操作?

1 个答案:

答案 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)
}

如果您正在寻找更多用于网络开发的资源......