GoWeb编程:服务器端处理表单数据及登录示例
需积分: 50 52 浏览量
更新于2024-08-10
收藏 5.91MB PDF 举报
"《Go Web 编程》是作者为了分享Go语言进行Web开发的知识而编写的开源书籍,旨在帮助从其他语言转到Go的开发者理解Web应用的开发。本书在GitHub上更新,并鼓励更多的人参与贡献。"
在Go语言中,处理HTTP请求时,服务器端默认并不会自动解析HTTP请求的Form数据。例如,在用户登录界面,当用户输入用户名和密码并提交后,服务器端需要显式调用`r.ParseForm()`来解析表单数据,以便进一步处理。`r.Form`是一个`url.Values`类型的变量,它包含了请求的所有参数,包括URL查询字符串、POST或PUT的数据。如果URL查询字符串和POST数据存在同名参数,`r.Form`会将它们保存为一个切片。
在示例中,原始代码没有调用`r.ParseForm()`,因此在服务器端看不到用户的输入。当添加`r.ParseForm()`后,服务器端就能正确打印出用户提交的用户名和密码。例如,如果表单的`action`属性被修改为带有预设用户名的URL,服务器端的输出会显示一个包含多个值的切片。
`url.Values`结构允许对表单数据进行各种操作,如设置、添加键值对。例如:
```go
v := url.Values{}
v.Set("name", "Ava")
v.Add("friend", "Jess")
v.Add("friend", "Sarah")
v.Add("friend", "Zoe")
```
在这个例子中,`v`包含了键为"name"的值"Ava"和键为"friend"的多个值"Jess", "Sarah", "Zoe"。可以使用`v.Get()`来获取单个值,或者`v["friend"]`来获取一个值的切片。
此外,`Request`对象还提供了便捷的`FormValue()`函数,可以直接获取同名参数的第一个值,且在调用`r.FormValue()`时会自动调用`r.ParseForm()`。如果参数不存在,`FormValue()`会返回空字符串。
书中提到的`build.go`文件用于编译Markdown文件为HTML,需要先获取`github.com/russross/blackfriday`包,然后执行`go build build.go`生成HTML文件。
最后,作者鼓励读者通过QQ群和在线平台如德问进行交流学习,共同提升Go Web编程技能。本书遵循CC BY-SA 3.0许可证,允许他人在遵守一定条件下使用、分享和改编内容。
191 浏览量
2018-09-13 上传
2021-09-07 上传
点击了解资源详情
点击了解资源详情
2021-02-24 上传
2022-02-23 上传
2021-01-27 上传
思索bike
- 粉丝: 38
- 资源: 3962
最新资源
- Angular实现MarcHayek简历展示应用教程
- Crossbow Spot最新更新 - 获取Chrome扩展新闻
- 量子管道网络优化与Python实现
- Debian系统中APT缓存维护工具的使用方法与实践
- Python模块AccessControl的Windows64位安装文件介绍
- 掌握最新*** Fisher资讯,使用Google Chrome扩展
- Ember应用程序开发流程与环境配置指南
- EZPCOpenSDK_v5.1.2_build***版本更新详情
- Postcode-Finder:利用JavaScript和Google Geocode API实现
- AWS商业交易监控器:航线行为分析与营销策略制定
- AccessControl-4.0b6压缩包详细使用教程
- Python编程实践与技巧汇总
- 使用Sikuli和Python打造颜色求解器项目
- .Net基础视频教程:掌握GDI绘图技术
- 深入理解数据结构与JavaScript实践项目
- 双子座在线裁判系统:提高编程竞赛效率