ホームページ > バックエンド開発 > Golang > Golang の POST メソッドを使用してデータ処理を実装する方法

Golang の POST メソッドを使用してデータ処理を実装する方法

PHPz
リリース: 2023-04-11 09:38:51
オリジナル
1216 人が閲覧しました

Golang は、Web アプリケーション開発に最適な人気のあるプログラミング言語です。 Web アプリケーションを作成する場合、POST メソッドは最も一般的に使用される HTTP メソッドの 1 つであり、これを使用してデータをサーバー側に送信できます。この記事では、Golang の POST メソッドを使用してサーバーサイドのデータ処理を実装する方法を紹介します。

Golang で POST メソッドを使用するには、net/http パッケージの Post 関数を使用する必要があります。この関数で使用される形式は次のとおりです。

resp, err := http.Post(url string, contentType string, body io.Reader)
ログイン後にコピー

このうち、url パラメータはターゲット サーバーのアドレスとポート番号、contentType パラメータはリクエスト本文の MIME タイプ、body パラメータはリクエストボディのデータストリーム。

POST メソッドの使用法を示すために、クライアントから送信されたデータを受信し、サーバー側のデータベースに保存する単純な Web アプリケーションを作成します。

まず、データを受信して​​サーバーに送信するための HTML フォームを作成する必要があります:

<html>
  <head>
    <meta charset="utf-8">
    <title>提交数据</title>
  </head>
  <body>
    <h1>提交数据</h1>
    <form action="/submit" method="post">
      <label for="name">姓名:</label>
      <input type="text" id="name" name="name"><br>
      <label for="email">邮箱:</label>
      <input type="email" id="email" name="email"><br>
      <input type="submit" value="提交">
    </form>
  </body>
</html>
ログイン後にコピー

このフォームでは、名前と電子メール アドレスを入力するための 2 つのテキスト ボックスを定義し、送信します。このデータをサーバー上の /submit パスにコピーします。次に、サーバー側で /submit パスの処理ロジックを実装する必要があります。

サーバー側のコードは次のとおりです:

package main

import (
  "database/sql"
  "fmt"
  "log"
  "net/http"
  "time"

  _ "github.com/go-sql-driver/mysql"
)

func main() {
  http.HandleFunc("/submit", submitHandler)
  http.ListenAndServe(":8080", nil)
}

func submitHandler(w http.ResponseWriter, r *http.Request) {
  db, err := sql.Open("mysql", "root:@/test")
  if err != nil {
    log.Fatal(err)
  }
  defer db.Close()

  err = r.ParseForm()
  if err != nil {
    log.Fatal(err)
  }

  name := r.FormValue("name")
  email := r.FormValue("email")
  timestamp := time.Now()

  stmt, err := db.Prepare("INSERT INTO users(name, email, timestamp) VALUES(?, ?, ?)")
  if err != nil {
    log.Fatal(err)
  }
  defer stmt.Close()

  _, err = stmt.Exec(name, email, timestamp)
  if err != nil {
    log.Fatal(err)
  }

  fmt.Fprintf(w, "数据已提交!")
}
ログイン後にコピー

submitHandler 関数では、まず MySQL データベースに接続し、r.ParseForm() 関数を通じて要求されたフォーム データを解析します。次に、名前と電子メールのパラメータを取得し、現在のタイムスタンプを生成します。

次に、sql パッケージの Prepare 関数を使用して、SQL ステートメントのプリペアド ステートメントを作成し、フォーム データを疑問符プレースホルダーにバインドします。最後に、stmt.Exec() 関数を通じてデータを MySQL データベースに挿入し、成功メッセージをクライアントに出力します。

アプリケーションを実行し、ブラウザ経由でデータ送信ページにアクセスすると、一部のデータをサーバーに送信し、このデータを MySQL データベースに保存できます。私のテストでは、このデータは test という名前のデータベース内の users という名前のテーブルに保存されます。このデータを表示するには、次のコマンドを使用できます。

$ mysql -u root test
mysql> SELECT * FROM users;
ログイン後にコピー

POST メソッドを使用してサーバー側のデータ処理を実装すると、クライアントから送信されたデータを簡単に受信し、サーバー側のデータベースに保存できます。 Golang で Web プログラミングを学習している場合、POST メソッドは習得しなければならない重要なスキルの 1 つです。

以上がGolang の POST メソッドを使用してデータ処理を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート