zoukankan      html  css  js  c++  java
  • [go]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
    ", 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
    ", u, u)
        c.Ctx.WriteString("hello")
    }
    

    上传文件

    <form enctype="multipart/form-data" method="post" action="http://localhost:8080/">
        <input type="file" name="uploadname" />
        <input type="submit">
    </form>
    
    func (c *MainController) Post() {
        f, h, err := c.GetFile("uploadname")
        if err != nil {
            log.Fatal("getfile err ", err)
        }
        fmt.Printf("%T,%#v
    ", f, f)
        defer f.Close()
        c.SaveToFile("uploadname", "static/upload/" + h.Filename) // 保存位置在 static/upload, 没有文件夹要先创建
        c.Ctx.WriteString("post")
    }
    

    后端返回数据到前端

    • 返回字符串
    c.Ctx.WriteString("<h1>hello world</h1>")
    
    • 返回模板html
    c.Data["name"] = "mm"
    c.Data["age"] = 22
    c.TplName = "user.html"
    
    <body>
        <h1>user</h1>
        {{.name}}
        {{.age}}
    </body>
    
    • 返回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()
    }
    
  • 相关阅读:
    TF-IDF与余弦类似性的应用(一):自己主动提取关键词
    三层中的大学问
    浅析JavaBean
    查看和改动MySQL数据库表存储引擎
    菜鸟之路--线性表__链表实现
    STL_算法_元素计数(count、count_if)
    ZOJ 3691 Flower(最大流+二分)
    字符的编码与解码
    主动訪问用户数据的背后是品牌战略
    输入n,求1~n累加
  • 原文地址:https://www.cnblogs.com/iiiiiher/p/11812101.html
Copyright © 2011-2022 走看看