Go language is often used to develop web applications. In web applications, routing and page jumps are very important functions. This article will introduce how golang implements page jumps.
1. Static page jump
In web development, we often need to redirect users from one page to another. In golang, redirection can be achieved through the http.Redirect function. The definition of this function is:
func Redirect(w http.ResponseWriter, r *http.Request, url string, code int)
Among them, w refers to the response object sent to the client, r refers to the request object sent by the client, url refers to the URL address that needs to be jumped, and code refers to the status code. .
For example, in the following code, we define a route for /login and redirect it to another page:
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) }
In the above code, when the user accesses /login , it will automatically jump to the /welcome page and display "Welcome!".
2. Template-based page jump
In web development, we usually need to pass some data to the target page. In golang, you can use HTML templates to implement page jumps with data.
The following is a simple sample code, where Guest and User are structure types:
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) }
In the above code, we define two routes, "/" and "/profile" . When the user accesses "/", the template "templates/index.html" will be loaded, the data of the Guest structure will be passed to the template for rendering and the result will be returned. When a user accesses "/profile", the template "templates/profile.html" will be loaded, the data of the User structure will be passed to the template for rendering and the result will be returned.
Go language template tags can be used in HTML templates to insert dynamic data into the page. For example: In the templates/index.html file, you can use the following code to output the name of the Guest:
<!DOCTYPE html> <html> <head> <title>Hello World!</title> </head> <body> <h1>Hello, {{.Name}}!</h1> <a href="/profile">Enter Profile</a> </body> </html>
In the templates/profile.html file, you can also use similar code to output the User's name and age. :
<!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>
Summary:
The above is the detailed content of How to jump to the page in golang. For more information, please follow other related articles on the PHP Chinese website!