gin 框架 表单输入 验证器
时间: 2023-09-03 09:10:05 浏览: 111
在 Gin 框架中,使用 `binding` 标签可以对表单输入进行验证。下面是一个 Gin 框架表单输入验证器的使用示例:
1. 导入 gin 包
```
import "github.com/gin-gonic/gin"
```
2. 创建一个结构体,定义表单输入
```
type LoginForm struct {
Username string `form:"username" binding:"required"`
Password string `form:"password" binding:"required"`
}
```
3. 在路由处理函数中使用验证器
```
func loginHandler(c *gin.Context) {
var form LoginForm
if err := c.ShouldBind(&form); err != nil {
c.HTML(http.StatusBadRequest, "login.html", gin.H{
"error": err.Error(),
})
return
}
// TODO: 处理登录逻辑
}
```
4. 创建一个 HTML 模板,定义表单
```
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
{{ if .error }}
<p style="color: red;">{{ .error }}</p>
{{ end }}
<form method="POST" action="/login">
<label for="username">Username:</label>
<input type="text" name="username" id="username"><br>
<label for="password">Password:</label>
<input type="password" name="password" id="password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
```
5. 启动服务
```
func main() {
r := gin.Default()
r.LoadHTMLGlob("templates/*")
r.GET("/login", func(c *gin.Context) {
c.HTML(http.StatusOK, "login.html", gin.H{})
})
r.POST("/login", loginHandler)
r.Run(":8080")
}
```
这样,当用户提交登录表单时,会先对表单输入进行校验,如果输入不符合要求,则返回错误信息;如果输入符合要求,则继续处理登录逻辑。
阅读全文