Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melompat ke halaman dalam golang

Bagaimana untuk melompat ke halaman dalam golang

WBOY
WBOYasal
2023-05-15 13:25:081122semak imbas

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:

  1. Dalam golang, lompatan halaman boleh dicapai melalui fungsi http.Redirect.
  2. Lompatan halaman berasaskan templat boleh mencapai output data dinamik melalui templat HTML.
  3. Enjin templat bahasa Go mempunyai fungsi yang berkuasa dan boleh memproses dokumen HTML/XML, berubah daripada berorientasikan proses kepada berorientasikan objek.

Atas ialah kandungan terperinci Bagaimana untuk melompat ke halaman dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:golang tutup pergi benangArtikel seterusnya:golang tutup pergi benang