GoWeb编程:服务器端处理表单数据及登录示例
需积分: 50 173 浏览量
更新于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
- 资源: 3990
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手