本文共 3377 字,大约阅读时间需要 11 分钟。
url
上的query
参数1、url
类型
http:xxx:8080/person?name=hell&age=20
2、后端中定义路由
func init() { beego.Router("/person", &person.PersonController{ })}
3、在后端中获取参数
package personimport ( "fmt" "github.com/astaxie/beego")type PersonController struct { beego.Controller}//定义get请求func (c *PersonController) Get() { //方式一 name1 := c.GetString("name") age1 := c.GetString("age") fmt.Println("方式一", name1, age1) //方式二 name2 := c.Input().Get("name") age2 := c.Input().Get("age") fmt.Println("方式二", name2, age2) c.TplName = "person.html"}
url
上的params
参数1、浏览器上url
方式
http:xx:8080/person/10
2、定义路由的时候
func init() { beego.Router("/", &controllers.MainController{ }) //后端通过接收id的方式来接收数据?:id:int也可以这样,那么只能接收一个int类型的数据 beego.Router("/person/?:id", &person.PersonController{ })}
3、在控制器上接收数据
注意要写**
:id
**,不是直接写id
//定义get请求func (c *PersonController) Get() { //方式一 id1 := c.GetString(":id") fmt.Println("方式一", id1) //方式二 id3 := c.Ctx.Input.Param(":id") fmt.Println("方式三", id3) // 方式三,直接接收多个参数,一个map params := c.Ctx.Input.Params() c.TplName = "person.html"}
post
表单提交数据1、定义一个简单的form
表单
2、定义路由
func init() { // get请求会到get中,post请求会到post中 beego.Router("/post", &post.PostControllers{ })}
3、定义控制器
package postimport ( "fmt" "github.com/astaxie/beego")type PostControllers struct { beego.Controller}func (c *PostControllers) Get() { c.TplName = "post.html"}func (c *PostControllers) Post() { //方式一 username := c.GetString("username") password := c.GetString("password") fmt.Println("方式一获取参数", username, password) //方式二 username1 := c.Input().Get("username") password1 := c.Input().Get("password") fmt.Println("第二种方式", username1, password1) c.TplName = "test.tpl"}
post
提交数据解析到结构体1、前端静态代码
2、后端定义一个接收数据的结构体
// 这里使用的是form表单接收的方式,就要定义form,方便前端传递过来的是username,在go语言中使用UserNametype FormData struct { UserName string `form:"username"` Password string `form:"password"` Gender int `form:"gender"` Price float64 `form:"price"` IsCheck bool `form:"isCheck"`}
3、在post
中接收数据请求,然后存储到结构体中
func (c *PostControllers) Post() { // 定义一个结构体 formData := FormData{ } err := c.ParseForm(&formData) if err != nil { fmt.Println("解析错误") } fmt.Println(formData) c.TplName ="test.tpl"}
json
数据交付1、要在配置文件中开启
// conf/app.conf文件中加上这句copyrequestbody = true
2、定义一个结构体用来接收数据的
//定义一个学生的结构体type Student struct { Name string `json:"name"` Gender string `json:"gender"` Age int `json:"age"`}
3、定义post
的控制器接收数据
func (c *StudentControllers) Post() { var student Student data := c.Ctx.Input.RequestBody // 二进制的json数据 //将二进制的json解析到结构体中 err := json.Unmarshal(data, &student) if err != nil { fmt.Println("获取数据错误") } fmt.Println(student, "接收的数据") //注意这里必须返回一个map result := map[string]string{ "code": "200", "message": "成功"} c.Data["json"] = result //定义返回json c.ServeJSON()}
4、用postman
调试接口
转载地址:http://tjvf.baihongyu.com/