美文网首页
跟我一起学习GO语言012——表单操作

跟我一起学习GO语言012——表单操作

作者: 搬砖人1314 | 来源:发表于2019-10-13 08:41 被阅读0次

          上一节我们介绍了搭建一个Web服务器,本节我们来看看通过表单让客户端和服务器方便的进行数据交互,首先我们来看看一个简单的例子:提交用户名密码,点击登陆,很多网站登陆操作。新建一个表单文件命名为:login.gtpl

    表单例子

    <html>
    <head>
    <title>登陆<title>
    </head>
    <body>
    <form action=”http://127.0.0.1:9090/login”method=”post”>
    用户名:<input type=”text”name=”username”>
        密码:<input type=”password” name=”password”>
                   <input type=”submit” value=”登陆”>

    </body>
    </html>

          接下来递交表单到服务器的/login,当我们输入信息点击登陆之后,会跳转到服务器的路由login里面,我们要判断有什么方式传递过来的,是POST还是GET呢?如果你想深入了解POST和GET的区别建议你看看这篇文章,写得生动有趣,介绍比较透彻。

    我们来看看http包怎么获取并处理login页面的form数据的。

    例子
    package main

    import(
          “fmt”
          “html/template”
          “log”
          “net/http”
          “strings”
    )

    func syhelloName(w http.ResponseWriter,r*http.Request){
           r.ParseForm()//解析Url传递的参数,对于POST则解析响应包的主体(request body)
          //注意:如果没有调用ParseForm方法,下面无法获取表单的数据
          fmt.Println(r.Form)//这些信息是输出到服务器端的打印信息
          fmt.Println(“path”,r.URL.Path)
          fmt.Println(“scheme”,r.URL.Scheme)
          fmt.Println(r.Form[“url_long”])
          for k,v:=rang r.Form{
                fmt.Println(“key:”,k)
                fmt.Println(“val:”,strings.Join(v,””))
         }
        fmt.Fprintf(w http.ResponseWriter,r *http.Request){
                fmt.Println(“method:”,r.Method)//获取请求的方法
                if r.Method==”GET”{
                       t,_:=template.ParseFiles(“login.gtpl”)
                       t.Execute(w,nil)
                } else {
                    r.ParseForm()
                   //请求的是登陆数据,那么执行登陆逻辑判断
                    fmt.Println(“username:”,r.Form[“username”])
                   fmt.Println(“password:”,r.Form[“password”])

               }
    }

    func main(){
        http.HandleFunc(“/”,sayhelloName)//设置访问的路由
        http.HandleFunc(“/login”,login)
        err:=http.ListenAndServe(“:9090”,nil)//设置监听的端口
        if err !=nil{
           log.Fatal(“ListenAndServe:”,err)
        }

      }

    }
         通过上面的代码我可以看出获取请求方法是通过r.Method来完成的,这是个字符串类型的变量,返回信息。    
         运行起来输入用户名和密码之后,发现在服务器端显示出响应的请求类型及你输入的用户名和密码。例子比较简单,但是已经把我们要介绍的信息有一个了解,下篇我们接着将表单的一些信息。

    请开始你的表演,践行,践行,再践行。未完待续。。。

    相关文章

      网友评论

          本文标题:跟我一起学习GO语言012——表单操作

          本文链接:https://www.haomeiwen.com/subject/hlczectx.html