2021-06-13
来源:华纳网
责任编辑:王双双
人气:
核心提示:【谷雨课堂】Go实战 No.017 Go干货!网站服务Post请求
知识点:
Post请求
本课内容:
大家好,欢迎来到谷雨课堂,
上一节我们讲了如何用Go来接收GET请求,
这节我们看一下如何用Go来接收POST请求,
POST请求大多应用在保存大量表单数据的场景,
表单中同时存在多个信息,
HTML表单常用的输入类型有:
文本框-用于输入一小段文字
密码框-用于输入密码
复选框-有选择和不选择的状态,通常用来组合构成多选
单选框-同一个名称的单选框同时只能选一个,通常用来组合构成单选
下拉框-从一个下拉列表中选取一项内容
多行文本框-用于输入多行文字
文件上传-用于上传文件
以上各种类型的不同组合,就构成了我们常用的各种应用。
不过随着前端技术的兴起,
现在的网页已经不再局限于以上的各种表单组件了,
以后我们会逐渐进行讲解。
但不管技术如何变化 ,其本质都是相同的。
POST例子
<hr>
<form method="post" action="/save?id=100" target="_blank">
用户名:<input type="text" name="username" value="user111"><br>
密码:<input type="password" name="password" value="123456"><br>
爱好:
<input type="checkbox" name="aihao" value="音乐">音乐
<input type="checkbox" checked name="aihao" value="美术">美术
<input type="checkbox" checked name="aihao" value="摄影">摄影
<br>
学历:
<input type="radio" name="xueli" value="初中">初中
<input type="radio" checked name="xueli" value="高中">高中
<input type="radio" name="xueli" value="大学以上">大学以上
<br>
省份:
<select name="sheng">
<option value="辽宁">辽宁</option>
<option value="浙江">浙江</option>
<option value="浙江">浙江</option>
</select>
<br>
备注:
<textarea name="bz" cols="50" rows="20">在这里可以写一些备注信息,
可以是多行的。</textarea>
<hr>
<input type="submit" name="btnOI" value="保存">
</form>
func InitWebApi() {
log.Println("GuYu GoLang ....")
webServer := gin.Default()
//注册模板目录
webServer.LoadHTMLGlob("tpl/*")
webServer.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{})
})
webServer.POST("/save", func(c *gin.Context) {
str := "POST Form \r\n"
username := c.PostForm("username")
str += "用户名:" + username + "\r\n"
password := c.PostForm("password")
str += "密码:" + password + "\r\n"
//获取多选项,返回数组
aihao := c.PostFormArray("aihao")
str += "爱好:"
for _, b := range aihao {
str += b + " "
}
str += "\r\n"
xueli := c.PostForm("xueli")
str += "学历:" + xueli + "\r\n"
sheng := c.PostForm("sheng")
str += "省份:" + sheng + "\r\n"
bz := c.PostForm("bz")
str += "备注:" + bz + "\r\n"
//遍历所有Form数据
for k, v := range c.Request.PostForm {
fmt.Printf("k:%v\n", k)
fmt.Printf("v:%v\n", v)
}
c.String(http.StatusOK, str)
})
webServer.Run(":8090")
}
完整的源代码可以登录【华纳网】下载。
https://www.worldwarner.com/
免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
Post请求
本课内容:
大家好,欢迎来到谷雨课堂,
上一节我们讲了如何用Go来接收GET请求,
这节我们看一下如何用Go来接收POST请求,
POST请求大多应用在保存大量表单数据的场景,
表单中同时存在多个信息,
HTML表单常用的输入类型有:
文本框-用于输入一小段文字
密码框-用于输入密码
复选框-有选择和不选择的状态,通常用来组合构成多选
单选框-同一个名称的单选框同时只能选一个,通常用来组合构成单选
下拉框-从一个下拉列表中选取一项内容
多行文本框-用于输入多行文字
文件上传-用于上传文件
以上各种类型的不同组合,就构成了我们常用的各种应用。
不过随着前端技术的兴起,
现在的网页已经不再局限于以上的各种表单组件了,
以后我们会逐渐进行讲解。
但不管技术如何变化 ,其本质都是相同的。
POST例子
<hr>
<form method="post" action="/save?id=100" target="_blank">
用户名:<input type="text" name="username" value="user111"><br>
密码:<input type="password" name="password" value="123456"><br>
爱好:
<input type="checkbox" name="aihao" value="音乐">音乐
<input type="checkbox" checked name="aihao" value="美术">美术
<input type="checkbox" checked name="aihao" value="摄影">摄影
<br>
学历:
<input type="radio" name="xueli" value="初中">初中
<input type="radio" checked name="xueli" value="高中">高中
<input type="radio" name="xueli" value="大学以上">大学以上
<br>
省份:
<select name="sheng">
<option value="辽宁">辽宁</option>
<option value="浙江">浙江</option>
<option value="浙江">浙江</option>
</select>
<br>
备注:
<textarea name="bz" cols="50" rows="20">在这里可以写一些备注信息,
可以是多行的。</textarea>
<hr>
<input type="submit" name="btnOI" value="保存">
</form>
func InitWebApi() {
log.Println("GuYu GoLang ....")
webServer := gin.Default()
//注册模板目录
webServer.LoadHTMLGlob("tpl/*")
webServer.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{})
})
webServer.POST("/save", func(c *gin.Context) {
str := "POST Form \r\n"
username := c.PostForm("username")
str += "用户名:" + username + "\r\n"
password := c.PostForm("password")
str += "密码:" + password + "\r\n"
//获取多选项,返回数组
aihao := c.PostFormArray("aihao")
str += "爱好:"
for _, b := range aihao {
str += b + " "
}
str += "\r\n"
xueli := c.PostForm("xueli")
str += "学历:" + xueli + "\r\n"
sheng := c.PostForm("sheng")
str += "省份:" + sheng + "\r\n"
bz := c.PostForm("bz")
str += "备注:" + bz + "\r\n"
//遍历所有Form数据
for k, v := range c.Request.PostForm {
fmt.Printf("k:%v\n", k)
fmt.Printf("v:%v\n", v)
}
c.String(http.StatusOK, str)
})
webServer.Run(":8090")
}
完整的源代码可以登录【华纳网】下载。
https://www.worldwarner.com/
免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。