Go 言語は Web アプリケーションの開発によく使用されます。 Web アプリケーションでは、ルーティングとページ ジャンプは非常に重要な機能です。この記事では、golang がページジャンプをどのように実装しているかを紹介します。
1. 静的ページ ジャンプ
Web 開発では、ユーザーをあるページから別のページにリダイレクトする必要がよくあります。 golang では、http.Redirect 関数を通じてリダイレクトを実現できます。この関数の定義は次のとおりです。
func Redirect(w http.ResponseWriter, r *http.Request, url string, code int)
このうち、w はクライアントに送信される応答オブジェクトを指します。r はクライアントから送信されるリクエスト オブジェクトを指します。url はジャンプする必要がある URL アドレスを指します。 、コードはステータス コードを指します。
たとえば、次のコードでは、 /login のルートを定義し、別のページにリダイレクトします。
package main import( "net/http" ) func main(){ http.HandleFunc("/login",func(w http.ResponseWriter, r *http.Request){ http.Redirect(w, r, "/welcome", 301) }) http.HandleFunc("/welcome",func(w http.ResponseWriter, r *http.Request){ w.Write([]byte("Welcome!")) }) http.ListenAndServe(":8080", nil) }
上記のコードでは、ユーザーが /login にアクセスすると、自動的に/welcome ページにジャンプし、「ようこそ!」と表示します。
2. テンプレートベースのページ ジャンプ
Web 開発では、通常、ターゲット ページにデータを渡す必要があります。 golang では、HTML テンプレートを使用して、データによるページ ジャンプを実装できます。
次は簡単なサンプル コードです。ここで、Guest と User は構造体タイプです。
package main import ( "html/template" "net/http" ) type Guest struct { Name string } type User struct { Name string Age int } func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { tmplt := template.Must(template.ParseFiles("templates/index.html")) data := Guest{ Name: "Guest", } tmplt.Execute(w, data) }) http.HandleFunc("/profile", func(w http.ResponseWriter, r *http.Request) { tmplt := template.Must(template.ParseFiles("templates/profile.html")) data := User{ Name: "John", Age: 25, } tmplt.Execute(w, data) }) http.ListenAndServe(":8080", nil) }
上記のコードでは、2 つのルート "/" と "/profile" を定義します。ユーザーが「/」にアクセスすると、テンプレート「templates/index.html」がロードされ、Guest 構造体のデータがレンダリングのためにテンプレートに渡され、結果が返されます。ユーザーが「/profile」にアクセスすると、テンプレート「templates/profile.html」がロードされ、ユーザー構造のデータがレンダリングのためにテンプレートに渡され、結果が返されます。
Go 言語テンプレート タグを HTML テンプレートで使用して、ページに動的データを挿入できます。例: templates/index.html ファイルでは、次のコードを使用してゲストの名前を出力できます。
<!DOCTYPE html> <html> <head> <title>Hello World!</title> </head> <body> <h1>Hello, {{.Name}}!</h1> <a href="/profile">Enter Profile</a> </body> </html>
templates/profile.html ファイルでは、同様のコードを使用して出力することもできます。ユーザーの名前と年齢:
<!DOCTYPE html> <html> <head> <title>User Profile</title> </head> <body> <h1>User Profile</h1> <ul> <li>Name: {{.Name}}</li> <li>Age: {{.Age}}</li> </ul> </body> </html>
概要:
以上がgolangでページにジャンプする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。