• Go Web——Beego之controller控制器函数介绍



    控制器介绍

    基于 beego 的 Controller 设计,只需要匿名组合 beego.Controller 就可以了,如下所示:

    package your_package
    
    import (
        "github.com/beego/beego/v2/server/web"
    )
    
    type xxxController struct {
       
            web.Controller
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    控制器方法

    web.Controller 实现了接口 web.ControllerInterfaceweb.ControllerInterface 定义了如下函数:

    • Init(ctx *context.Context, controllerName, actionName string, app interface{})

      这个函数主要初始化了 Context、相应的 Controller 名称,模板名,初始化模板参数的容器 Data,app 即为当前执行的 Controller 的 reflecttype,这个 app 可以用来执行子类的方法。

    • Prepare()

      这个函数主要是为了用户扩展用的,这个函数会在下面定义的这些 Method 方法之前执行,用户可以重写这个函数实现类似用户验证之类。

    • Get()

      如果用户请求的 HTTP Method 是 GET,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Get 请求。

    • Post()

      如果用户请求的 HTTP Method 是 POST,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Post 请求。

    • Delete()

      如果用户请求的 HTTP Method 是 DELETE,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Delete 请求。

    • Put()

      如果用户请求的 HTTP Method 是 PUT,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Put 请求.

    • Head()

      如果用户请求的 HTTP Method 是 HEAD,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Head 请求。

    • Patch()

      如果用户请求的 HTTP Method 是 PATCH,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Patch 请求.

    • Options()

      如果用户请求的HTTP Method是OPTIONS,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Options 请求。

    • Finish()

      这个函数是在执行完相应的 HTTP Method 方法之后执行的,默认是空,用户可以在子 struct 中重写这个函数,执行例如数据库关闭,清理数据之类的工作。

    • Trace() error

      如果用户请求的 HTTP Method 是 Trace,那么就执行该函数,默认是 405,用户继承的子 struct 中可以实现了该方法以处理 Head 请求。

    • Render() error

      这个函数主要用来实现渲染模板,如果 beego.AutoRender 为 true 的情况下才会执行。

    • Mapping(method string, fn func())

      注册一个方法。一般而言, method 是合法的 HTTP 方法名。当然,用户注册自己特定的业务逻辑方法,而后手动调用。

    • HandlerFunc(fnname string) bool

      在前面 Mapping 方法里面注册的方法,可以通过该方法来使用。只会返回调用是否成功的信息——一般而言,只有方法不存在才会返回 false

    • RenderBytes() ([]byte, error)

      将模板渲染成字节数组。需要注意的是,该方法并未检测EnableRender设置。并且,和Render方法相比,它并未将结果输出到Response

    • RenderString() (string, error)

      类似于RenderBytes方法。只是将结果转化为了string

    • Redirect(url string, code int)

      重定向。url是目的地址。

    • SetData(data interface{})

      data存储在控制的数据中。一般而言,你不会考虑用到这个方法。

    • Abort(code string)

      中断当前方法的执行,直接返回该状态码,类似于CustomAbort。参考errors

    • CustomAbort(status int, body string)

      中断方法执行,直接返回该状态码和信息。参考errors

    • StopRun()

      直接触发panic

    • ServeXXX(encoding …bool) error

      返回特性类型的响应。目前我们支持 JSON,JSONP,XML,YAML。参考输出格式

    • ServeFormatted(encoding …bool) error

      返回响应。其格式由客户端的Accept选项指定。参考输出格式

    • Input() (url.Values, error)

      返回传入的参数。

    • ParseForm(ob

  • 相关阅读:
    光电柴微电网日前调度报告
    [.NET项目实战] Elsa开源工作流组件应用(三):实战演练
    红细胞装载阿霉素/羟基喜树碱/丹参酮IIA磺酸钠/地塞米松磷酸钠/维生素K1制备方法
    单例模式之懒汉模式和饿汉模式
    鸿蒙开发Ability Kit(程序框架服务):【向用户申请单次授权】
    十四、常用泛型数据结构
    基于SpringBoot的流浪动物管理系
    R语言获取data.table数据中指定数据列的最小值所在的数据行(minimum)
    5. C++11
    NLC: Search Correlated Window Pairs on Long Time Series(VLDB2022)
  • 原文地址:https://blog.csdn.net/qq_39280718/article/details/126603174