Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melompat ke halaman dalam golang
Bahasa Go sering digunakan untuk membangunkan aplikasi web. Dalam aplikasi web, penghalaan dan lompat halaman adalah fungsi yang sangat penting. Artikel ini akan memperkenalkan cara golang melaksanakan lompatan halaman.
1. Lompat halaman statik
Dalam pembangunan web, kita selalunya perlu mengubah hala pengguna dari satu halaman ke halaman yang lain. Dalam golang, ubah hala boleh dicapai melalui fungsi http.Redirect. Definisi fungsi ini ialah:
func Redirect(w http.ResponseWriter, r *http.Request, url string, code int)
Antaranya, w merujuk kepada objek respons yang dihantar kepada klien, r merujuk kepada objek permintaan yang dihantar oleh klien, url merujuk kepada alamat URL yang perlu dilompat. , dan kod merujuk kepada kod status.
Sebagai contoh, dalam kod di bawah, kami mentakrifkan laluan untuk /login dan mengubah hala ke halaman lain:
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) }
Dalam kod di atas, apabila pengguna mengakses /login , ia akan secara automatik lompat ke halaman /selamat datang dan paparkan "Selamat Datang!".
2. Lompat halaman berasaskan templat
Dalam pembangunan web, kita biasanya perlu menghantar beberapa data ke halaman sasaran. Dalam golang, anda boleh menggunakan templat HTML untuk melaksanakan lompatan halaman dengan data.
Berikut ialah contoh kod ringkas, di mana Tetamu dan Pengguna adalah jenis struktur:
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) }
Dalam kod di atas, kami mentakrifkan dua laluan, "/" dan "/profile" . Apabila pengguna mengakses "/", templat "templates/index.html" akan dimuatkan, data struktur Tetamu akan dihantar ke templat untuk pemaparan dan hasilnya akan dikembalikan. Apabila pengguna mengakses "/profile", templat "templates/profile.html" akan dimuatkan, data struktur Pengguna akan dihantar ke templat untuk pemaparan dan hasilnya akan dikembalikan.
Anda boleh menggunakan teg templat bahasa Go dalam templat HTML untuk memasukkan data dinamik ke dalam halaman. Contohnya: Dalam fail templates/index.html, anda boleh menggunakan kod berikut untuk mengeluarkan nama Tetamu:
<!DOCTYPE html> <html> <head> <title>Hello World!</title> </head> <body> <h1>Hello, {{.Name}}!</h1> <a href="/profile">Enter Profile</a> </body> </html>
Dalam fail templates/profile.html, anda juga boleh menggunakan kod yang serupa untuk mengeluarkan nama dan umur Pengguna. :
<!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>
Ringkasan:
Atas ialah kandungan terperinci Bagaimana untuk melompat ke halaman dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!