上一个章节中已经开始逐渐搭建了一个 web 页面,现在我们开始逐步完善页面上的功能,首先要完成的是登录和注册功能。
?接受表单数据
注册页面的 HTML 元素不在详细写出,具体页面代码可以直接参考Github 上代码。
页面完成后布局:

注册页面有三个输入框,分别为 email ,password 和 password again 。
完善后端 Gin 代码。我们在 initRouter 中 userGroup 中编写新的接口。
userRouter.POST("/register", handler.UserRegister)
编写完新的接口就要开始编写 Handler。
func UserRegister(context *gin.Context) {
email := context.PostForm("email")
password := context.DefaultPostForm("password", "Wa123456")
passwordAgain := context.DefaultPostForm("password-again", "Wa123456")
println("email", email, "password", password, "password again", passwordAgain)
}
UserRegister 方法中采用新的方式来接受 Post 请求提交的表单参数,PostForm 和 DefaultPostForm 。PostForm 直接接受参数,而 DefaultPostForm 可以设置一个默认值,如果前端没有进行传值,那么我们可以设置默认值,如上面的代码,如果前端没有将密码传输过来我们可以设置一个默认密码。
当我们运行并且输入的时候,在控制台上可以清楚的看到我们在表单上的输入。
当我们项目功能完善的时候,就可以完善我们的单元测试。
此时的单元测试交之前有点复杂。
首先我们要构造一个结构,该结构是为了帮助我们将我们要提交的信息存放到表单中,同时要指定请求头信息。
func TestUserPostForm(t *testing.T) {
value := url.Values{
}
value.

本文介绍了使用Gin框架处理Web表单数据的方法,包括接受POST请求的表单参数,模型绑定以简化参数处理,以及利用Gin内置的Validator库进行数据校验。此外,还讨论了如何使用Log和重定向来改进响应状态码和日志记录。
最低0.47元/天 解锁文章
2369

被折叠的 条评论
为什么被折叠?



