beego 获取字符串中的数据_[go]beego获取参数/返回参数

该博客介绍了Go语言中处理HTTP请求的各种方法,包括从URL参数中获取不同类型的值,如整型、布尔型、字符串及字符串切片。同时展示了如何解析表单数据到结构体,读取RequestBody内容,并处理文件上传。最后,展示了如何向前端返回字符串、HTML模板以及JSON数据。
摘要由CSDN通过智能技术生成

获取数据并转为对应的类型

- ?id=111&id=122

c.GetInt("id")

int,111

- ?id=111&id=122

c.GetBool("id")

bool,false

- ?id=111&id=122

c.GetString("id")

string,"111"

- ?id=111&id=122

c.GetStrings("id")

[]string,[]string{"111", "122"}

- ?id=111&id=122

c.Input().Get("id")

string,"111"

解析表单

c.ParseForm 直接解析到 struct

type user struct {

Id int `form:"-"`

Name interface{} `form:"name"`

Age int `form:"age"`

Email string

}

func (c *MainController) Post() {

u := user{}

c.ParseForm(&u)

fmt.Printf("%T,%#v\n", u, u)

c.Ctx.WriteString("hello")

}

解析Request Body

获取 Request Body 里的内容

type user struct {

Id int `json:"-"`

Name interface{} `json:"name"`

Age int `json:"age"`

Email string

}

func (c *MainController) Post() {

var u user

json.Unmarshal(c.Ctx.Input.RequestBody, &u)

fmt.Printf("%T,%#v\n", u, u)

c.Ctx.WriteString("hello")

}

上传文件

func (c *MainController) Post() {

f, h, err := c.GetFile("uploadname")

if err != nil {

log.Fatal("getfile err ", err)

}

fmt.Printf("%T,%#v\n", f, f)

defer f.Close()

c.SaveToFile("uploadname", "static/upload/" + h.Filename) // 保存位置在 static/upload, 没有文件夹要先创建

c.Ctx.WriteString("post")

}

后端返回数据到前端

返回字符串

c.Ctx.WriteString("

hello world

")

返回模板html

c.Data["name"] = "mm"

c.Data["age"] = 22

c.TplName = "user.html"

user

{{.name}}

{{.age}}

返回json

type user struct {

Name string `json:"name"`

Age int `json:"age"`

Birth time.Time `json:"birth"`

}

func (u *UserController) Get() {

var p1 = &user{

Name: "mm",

Age: 22,

Birth: time.Now(),

}

u.Data["json"] = p1

u.ServeJSON()

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值