beego 获取字符串中的数据
获取数据并转为对应的类型
- ?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()
}