zoukankan      html  css  js  c++  java
  • Beego基础学习(二)基本的路由设置实现get和post(json)请求

    一、简单路由配置实现get

    路由文件:

    package routers
    
    import (
        "github.com/astaxie/beego"
        "mypro/controllers"
    )
    
    func init() {
        beego.Router("/", &controllers.MainController{})
        beego.Router("/collection", &controllers.CollectionController{})
        beego.Router("/getmovieinfo/?:id/?:name", &controllers.GetMovieInfoController{})
    }

    控制器文件

    package controllers
    
    import (
        "github.com/astaxie/beego"
    )
    
    type GetMovieInfoController struct {
        beego.Controller
    }
    
    func (c *GetMovieInfoController)  Get() {
        id := c.GetString(":id")
        name := c.GetString(":name")
        id2 := c.Ctx.Input.Param(":id")
        name2 := c.Ctx.Input.Param(":name")
        c.Ctx.WriteString("第一种id:" + id + "第一种name:" + name + "第二种id:" + id2 + "第二种name:" + name2 )
        c.TplName = "index.tpl"
    }

    、简单路由配置实现post(json)

    路由文件

    package routers
    
    import (
        "github.com/astaxie/beego"
        "mypro/controllers"
    )
    
    func init() {
        beego.Router("/", &controllers.MainController{})
        beego.Router("/collection", &controllers.CollectionController{})
        beego.Router("/getmovieinfo/?:id/?:name", &controllers.GetMovieInfoController{})
        beego.Router("/postmovieinfo", &controllers.GetMovieInfoController{}) //post
    
    }

    控制器文件

    package controllers
    
    import (
        "encoding/json"
        "fmt"
        "github.com/astaxie/beego"
    )
    
    type GetMovieInfoController struct {
        beego.Controller
    }
    type MovieInfo struct {
        Id string `json:"id"`            // 注意首字母大写
        Name   string `json:"name"`        // 并且写明与json字段的映射关系,否则Unmarshal函数不好用
    }
    
    func (c *GetMovieInfoController)  Post() {
        var MovieInfo_obj MovieInfo
        body := c.Ctx.Input.RequestBody //这是request的body 的json二进制数据
        fmt.Println(body)
        json.Unmarshal(body, &MovieInfo_obj)         //解析二进制json,把结果放进MovieInfo_obj中
        fmt.Println(MovieInfo_obj)
    
        c.Data["json"] = map[string]interface{}{"result": MovieInfo_obj, "msg": "获取成功","code":"200"}   // 设置返回值
        c.ServeJSON()     // 返回json数据
    }

    结果展示

     

  • 相关阅读:
    codeforces 1060 B
    codeforces 1060 A
    牛客 国庆七天乐 day1 L
    BZOJ 1087: [SCOI2005]互不侵犯King
    codeforces 792CDivide by Three(两种方法:模拟、动态规划
    codeforces 797C Minimal string
    codeforces 110E Lucky Tree
    codeforces 798D
    2017福建省赛 FZU2272~2283
    Android -- Looper、Handler、MessageQueue等类之间关系的序列图
  • 原文地址:https://www.cnblogs.com/wt645631686/p/9705304.html
Copyright © 2011-2022 走看看