0

次のようなコードがあるWebアプリケーションがあります。

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

これで、ルート / がハンドラー func に登録されました。最初のリクエスト (GET) では、フォームを作成してユーザーに送信します。ユーザーがこのフォームを送信すると、「POST」メソッドで処理します。ここで、ポスト メソッド ハンドラーで別のフォームを作成し、ユーザーがフォーム 2 を送信するときに、このフォーム 2 に入力した内容に基づいていくつかの操作を実行する方法が必要です。

form2フォームの送信を処理するためのgoの標準的な方法は何ですか? 私は以前にいくつかのaspプログラミングを行っており、フォームアクションを使用して別のaspファイルに送信しています。form2 送信リクエストの解析に基づいてアクションを実行するにはどうすればよいですか?

4

1 に答える 1

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 ルーティングのような、より複雑なことをしようとしている場合は、 Gorilla.muxのようなものに興味があるかもしれません。

使いやすい URL ルーティング メソッドをいくつか提供します。

func main() {
    router := mux.NewRouter()
    router.HandleFunc("/", YourGETHandlerFunc).Methods("GET")
    router.HandleFunc("/", YourPOSTHandlerFunc).Methods("POST")
    http.Handle("/", router)
}

Web 開発に関するその他のリソースをお探しの場合は...

于 2012-05-25T16:15:09.230 に答える