Beego脱坑(五)使用模板获取数据

在Controller 那批文章中,我们提到过 Controller有五大部分,其中一个部分就是模板,接下来我们就来完成一个简单的表单页面,并进行交互。

获取参数
当用户进行注册的时候,需要提交不同的数据类型,beego 为我们提供了一些方法,它会会自动解析这些数据。

GetString(key string) string //获取字符串类型
GetStrings(key string) []string //获取字符串数组
GetInt(key string) (int64, error) //获取整型数据
GetBool(key string) (bool, error) // 获取布尔型数据
GetFloat(key string) (float64, error) //获取浮点型数据
现在我们来进行一些演示:

package controllers

import (
    "fmt"
    "github.com/astaxie/beego"
    "strconv"
)

type Demo1Controller struct {
    beego.Controller
}

func (this *Demo1Controller) Get(){
    name:=this.GetString("name")
    nametype:= fmt.Sprintf("%T", name)
    this.Ctx.WriteString("name:" + name +"  type:"+nametype +"\n")

    age,err:= this.GetInt("age")
    if err!=nil{
        this.Ctx.WriteString("age传递过来的值无法转换成int"  )
    }
    agetype:= fmt.Sprintf("%T", age)
    this.Ctx.WriteString("age:"+ strconv.Itoa(age) +"  type:"+agetype+"\n")
}

注册路由

 beego.Router("/demo1",&controllers.Demo1Controller{})
1
我们使用curl命令执行看看

curl -XGET "http://127.0.0.1:8080/demo1?name=clown&age=18"
curl -XGET "http://127.0.0.1:8080/demo1?name=clown&age=18i"

通过运行结果,可以看到,GetString 自动帮我们把name参数解析成string类型。
GetInt 自动帮我们把age参数解析成int类型,但是如果我们传入的age的值是非法的,它并不能解析。

还有几个其他的函数,使用方法都大同小异,这里不在多说。

表单页面
现在我们来完成一个注册表单的页面,通过表单来提交POST请求,并且通过GET打印

首先我们在view下新建一个register.tpl

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>欢迎注册</title></head>
  <body>
    <form action="/register" method="post">
      <table>
        <tbody>
          <tr>
            <td>用户名</td>
            <td>
              <input type="text" name="user" value=""></td>
          </tr>
          <tr>
            <td>密码</td>
            <td>
              <input type="password" name="pwd" value=""></td>
          </tr>
          <tr>
            <td>邮箱</td>
            <td>
              <input type="text" name="email" value=""></td>
          </tr>
          <tr>
            <td>
              <input type="submit" value="确认"></td>
          </tr>
        </tbody>
      </table>
    </form>
  </body>
</html>

发布了76 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43778179/article/details/104722322