gin获取form参数
Gin框架介绍及使用
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
// 获取form表单提交的参数
func main() {
r := gin.Default()
r.LoadHTMLFiles("./login.html", "./index.html")
r.GET("/login", func(c *gin.Context) {
c.HTML(http.StatusOK, "login.html", nil)
})
// /login post
r.POST("/login", func(c *gin.Context) {
// 获取form表单提交的数据
//username := c.PostForm("username")
//password := c.PostForm("password") // 取到就返回值,取不到返回空字符串
//username := c.DefaultPostForm("username", "somebody")
//password := c.DefaultPostForm("xxx", "***")
username, ok := c.GetPostForm("username")
if !ok {
username = "sb"
}
password, ok := c.GetPostForm("password")
if !ok {
password = "***"
}
c.HTML(http.StatusOK, "index.html", gin.H{
"Name": username,
"Password": password,
})
})
r.Run(":9090")
}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h1>Hello, {{ .Name }}!</h1>
<p>你的密码是:{{ .Password }}</p>
</body>
</html>
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action="/login" method="post" novalidate autocomplete="off">
<div>
<label for="username">username:</label>
<input type="text" name="username" id="username">
</div>
<div>
<label for="password">password:</label>
<input type="password" name="password" id="password">
</div>
<div>
<input type="submit" value="登录">
</div>
</form>
</body>
</html>
上课笔记
- 今天遇到两个调试错误
-
r.GET("/login", func(c *gin.Context) {c.HTML(http.StatusOK, "login.html", nil)})
返回值中的login.html
->/login.html
,应该是login.html
因为在解析后该文件就会以它自己本身的名字存在,不需要在路径去查找.
-
LoadHTMLFiles
少了一个文件index.html
-
获取form表单提交的数据有三种方法
-
c.PostForm("username")
-
c.DefaultPostForm("username", "somebody")
-
username, ok := c.GetPostForm("username")
我还以为我进错网站了.....想着acwing怎么会有Go的学习资料。哈哈哈哈
哈哈哈,没什么,我这就是看这博客有makedown 的格式,不知道其他博客有没有这个格式。我就将就用了