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/





                                                                                                                                                                                           




免责声明:本文仅代表作者个人观点,与华纳网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。