Documentation ¶
Overview ¶
Beego (http://beego.me/) @description beego is an open-source, high-performance web framework for the Go programming language. @link http://github.com/zhaocloud/beego for the canonical source repository @license http://github.com/zhaocloud/beego/blob/master/LICENSE @authors zhaocloud
Index ¶
- Constants
- Variables
- func Access(v ...interface{})
- func AddAPPStartHook(hf hookfunc)
- func AddFuncMap(key string, funname interface{}) error
- func AddNamespace(nl ...*Namespace)
- func AddTemplateExt(ext string)
- func AssetsCss(src string) template.HTML
- func AssetsJs(src string) template.HTML
- func BuildTemplate(dir string) error
- func CloseSelf() error
- func Compare(a, b interface{}) (equal bool)
- func Critical(v ...interface{})
- func Date(t time.Time, format string) string
- func DateFormat(t time.Time, layout string) (datestring string)
- func DateParse(dateString, format string) (time.Time, error)
- func Debug(v ...interface{})
- func Error(v ...interface{})
- func ExceptMethodAppend(action string)
- func GetInitListener(tcpaddr *net.TCPAddr) (l net.Listener, err error)
- func HasTemplateExt(paths string) bool
- func Html2str(html string) string
- func Htmlquote(src string) string
- func Htmlunquote(src string) string
- func Info(v ...interface{})
- func ParseConfig() (err error)
- func ParseForm(form url.Values, obj interface{}) error
- func RegistZhaoController(c ControllerInterface)
- func RenderForm(obj interface{}) template.HTML
- func Restart(l net.Listener) error
- func Run()
- func SaveAccess(start time.Time, context *beecontext.Context)
- func SetLevel(l int)
- func SetLogFuncCall(b bool)
- func SetLogger(adaptername string, config string) error
- func Str2html(raw string) template.HTML
- func Substr(s string, start, length int) string
- func TestBeegoInit(apppath string)
- func Trace(v ...interface{})
- func UrlFor(endpoint string, values ...string) string
- func WaitSignal(l net.Listener) error
- func Warn(v ...interface{})
- func WriteMsg(v ...interface{})
- type App
- func AddFilter(pattern, action string, filter FilterFunc) *App
- func AddGroupRouter(prefix string, groups GroupRouters) *App
- func Any(rootpath string, f FilterFunc) *App
- func AutoPrefix(prefix string, c ControllerInterface) *App
- func AutoRouter(c ControllerInterface) *App
- func DelStaticPath(url string) *App
- func Delete(rootpath string, f FilterFunc) *App
- func Errorhandler(err string, h http.HandlerFunc) *App
- func Get(rootpath string, f FilterFunc) *App
- func Handler(rootpath string, h http.Handler, options ...interface{}) *App
- func Head(rootpath string, f FilterFunc) *App
- func InsertFilter(pattern string, pos int, filter FilterFunc) *App
- func NewApp() *App
- func Options(rootpath string, f FilterFunc) *App
- func Patch(rootpath string, f FilterFunc) *App
- func Post(rootpath string, f FilterFunc) *App
- func Put(rootpath string, f FilterFunc) *App
- func RESTRouter(rootpath string, c ControllerInterface) *App
- func Router(rootpath string, c ControllerInterface, mappingMethods ...string) *App
- func SetStaticPath(url string, path string) *App
- func SetViewsPath(path string) *App
- func (app *App) Any(rootpath string, f FilterFunc) *App
- func (app *App) AutoRouter(c ControllerInterface) *App
- func (app *App) AutoRouterWithPrefix(prefix string, c ControllerInterface) *App
- func (app *App) DelStaticPath(url string) *App
- func (app *App) Delete(rootpath string, f FilterFunc) *App
- func (app *App) Filter(pattern, action string, filter FilterFunc) *App
- func (app *App) Get(rootpath string, f FilterFunc) *App
- func (app *App) Handler(rootpath string, h http.Handler, options ...interface{}) *App
- func (app *App) Head(rootpath string, f FilterFunc) *App
- func (app *App) InsertFilter(pattern string, pos int, filter FilterFunc) *App
- func (app *App) Options(rootpath string, f FilterFunc) *App
- func (app *App) Patch(rootpath string, f FilterFunc) *App
- func (app *App) Post(rootpath string, f FilterFunc) *App
- func (app *App) Put(rootpath string, f FilterFunc) *App
- func (app *App) Router(path string, c ControllerInterface, mappingMethods ...string) *App
- func (app *App) Run()
- func (app *App) SetStaticPath(url string, path string) *App
- func (app *App) SetViewsPath(path string) *App
- func (app *App) UrlFor(endpoint string, values ...string) string
- type Controller
- func (c *Controller) Abort(code string)
- func (c *Controller) CheckXsrfCookie() bool
- func (c *Controller) DelSession(name interface{})
- func (c *Controller) Delete()
- func (c *Controller) DestroySession()
- func (c *Controller) Finish()
- func (c *Controller) Get()
- func (c *Controller) GetBool(key string) (bool, error)
- func (c *Controller) GetControllerAndAction() (controllerName, actionName string)
- func (c *Controller) GetFile(key string) (multipart.File, *multipart.FileHeader, error)
- func (c *Controller) GetFloat(key string) (float64, error)
- func (c *Controller) GetInt(key string) (int64, error)
- func (c *Controller) GetSecureCookie(Secret, key string) (string, bool)
- func (c *Controller) GetSession(name interface{}) interface{}
- func (c *Controller) GetString(key string) string
- func (c *Controller) GetStrings(key string) []string
- func (c *Controller) Head()
- func (c *Controller) Init(ctx *context.Context, controllerName, actionName string, app interface{})
- func (c *Controller) Input() url.Values
- func (c *Controller) IsAjax() bool
- func (c *Controller) Options()
- func (c *Controller) ParseForm(obj interface{}) error
- func (c *Controller) Patch()
- func (c *Controller) Post()
- func (c *Controller) Prepare()
- func (c *Controller) Put()
- func (c *Controller) Redirect(url string, code int)
- func (c *Controller) Render() error
- func (c *Controller) RenderBytes() ([]byte, error)
- func (c *Controller) RenderString() (string, error)
- func (c *Controller) SaveToFile(fromfile, tofile string) error
- func (c *Controller) ServeFormatted()
- func (c *Controller) ServeJson(encoding ...bool)
- func (c *Controller) ServeJsonp()
- func (c *Controller) ServeREST(err error, encoding ...bool)
- func (c *Controller) ServeXml()
- func (c *Controller) SessionRegenerateID()
- func (c *Controller) SetSecureCookie(Secret, name, value string, others ...interface{})
- func (c *Controller) SetSession(name interface{}, value interface{})
- func (c *Controller) StartSession() session.SessionStore
- func (c *Controller) StopRun()
- func (c *Controller) UrlFor(endpoint string, values ...string) string
- func (c *Controller) XsrfFormHtml() string
- func (c *Controller) XsrfToken() string
- type ControllerInterface
- type ControllerRegistor
- func (p *ControllerRegistor) Add(pattern string, c ControllerInterface, mappingMethods ...string)
- func (p *ControllerRegistor) AddAuto(c ControllerInterface)
- func (p *ControllerRegistor) AddAutoPrefix(prefix string, c ControllerInterface)
- func (p *ControllerRegistor) AddFilter(pattern, action string, filter FilterFunc) error
- func (p *ControllerRegistor) AddMethod(method, pattern string, f FilterFunc)
- func (p *ControllerRegistor) Any(pattern string, f FilterFunc)
- func (p *ControllerRegistor) Delete(pattern string, f FilterFunc)
- func (p *ControllerRegistor) Get(pattern string, f FilterFunc)
- func (p *ControllerRegistor) Handler(pattern string, h http.Handler, options ...interface{})
- func (p *ControllerRegistor) Head(pattern string, f FilterFunc)
- func (p *ControllerRegistor) InsertFilter(pattern string, pos int, filter FilterFunc) error
- func (p *ControllerRegistor) Options(pattern string, f FilterFunc)
- func (p *ControllerRegistor) Patch(pattern string, f FilterFunc)
- func (p *ControllerRegistor) Post(pattern string, f FilterFunc)
- func (p *ControllerRegistor) Put(pattern string, f FilterFunc)
- func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
- func (p *ControllerRegistor) UrlFor(endpoint string, values ...string) string
- type FilterFunc
- type FilterRouter
- type FlashData
- type GroupRouters
- type Namespace
- func (n *Namespace) Any(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) AutoPrefix(prefix string, c ControllerInterface) *Namespace
- func (n *Namespace) AutoRouter(c ControllerInterface) *Namespace
- func (n *Namespace) Cond(cond namespaceCond) *Namespace
- func (n *Namespace) Delete(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Filter(action string, filter FilterFunc) *Namespace
- func (n *Namespace) Get(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Handler(rootpath string, h http.Handler) *Namespace
- func (n *Namespace) Head(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Namespace(ns *Namespace) *Namespace
- func (n *Namespace) Options(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Patch(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Post(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Put(rootpath string, f FilterFunc) *Namespace
- func (n *Namespace) Router(rootpath string, c ControllerInterface, mappingMethods ...string) *Namespace
- func (n *Namespace) ServeHTTP(rw http.ResponseWriter, r *http.Request)
Constants ¶
const ( LevelTrace = iota LevelDebug LevelInfo LevelWarning LevelError LevelCritical )
Log levels to control the logging output.
const ( // default filter execution points BeforeRouter = iota AfterStatic BeforeExec AfterExec FinishRouter )
const (
// An environment variable when restarting application http listener.
FDKey = "BEEGO_HOT_FD"
)
const VERSION = "1.2.0"
beego web framework version.
Variables ¶
var ( BeeApp *App // beego application AppName string AppPath string AppConfigPath string StaticDir map[string]string TemplateCache map[string]*template.Template // template caching map StaticExtensionsToGzip []string // files with should be compressed with gzip (.js,.css,etc) HttpAddr string HttpPort int HttpTLS bool HttpCertFile string HttpKeyFile string RecoverPanic bool // flag of auto recover panic AutoRender bool // flag of render template automatically ViewsPath string RunMode string // run mode, "dev" or "prod" AppConfig config.ConfigContainer GlobalSessions *session.Manager // global session mananger SessionOn bool // flag of starting session auto. default is false. SessionProvider string // default session provider, memory, mysql , redis ,etc. SessionName string // the cookie name when saving session id into cookie. SessionGCMaxLifetime int64 // session gc time for auto cleaning expired session. SessionSavePath string // if use mysql/redis/file provider, define save path to connection info. SessionHashFunc string // session hash generation func. SessionHashKey string // session hash salt string. SessionCookieLifeTime int // the life time of session id in cookie. SessionAutoSetCookie bool // auto setcookie UseFcgi bool MaxMemory int64 EnableGzip bool // flag of enable gzip DirectoryIndex bool // flag of display directory index. default is false. EnableHotUpdate bool // flag of hot update checking by app self. default is false. HttpServerTimeOut int64 ErrorsShow bool // flag of show errors in page. if true, show error and trace info in page rendered with error template. XSRFKEY string // xsrf hash salt string. EnableXSRF bool // flag of enable xsrf. XSRFExpire int // the expiry of xsrf value. CopyRequestBody bool // flag of copy raw request body in context. TemplateLeft string TemplateRight string BeegoServerName string // beego server name exported in response header. EnableAdmin bool // flag of enable admin module to log every request info. AdminHttpAddr string // http server configurations for admin module. AdminHttpPort int FlashName string // name of the flash variable found in response header and cookie FlashSeperator string // used to seperate flash key:value //added by odin Daemonize bool // daemonize or not ProcName string //proc name PidFile string //pidfile abs path SkipAuth []string DebugLevel int )
var ( //zhao auth ZhaoAuth *zhaoutils.ZhaoAuth // supported http methods. HTTPMETHOD = []string{"get", "post", "put", "delete", "patch", "options", "head", "trace", "connect"} )
var ( // beego template caching map and supported template file extensions. BeeTemplates map[string]*template.Template BeeTemplateExt []string )
var (
AccessLogger *logs.BeeLogger
)
logger references the used application logger.
var BeeLogger *logs.BeeLogger
logger references the used application logger.
var ErrClosing = errors.New("use of closed network connection")
Export an error equivalent to net.errClosing for use with Accept during a graceful exit.
var ErrInitStart = errors.New("init from")
FilterMonitorFunc is default monitor filter when admin module is enable. if this func returns, admin module records qbs for this request by condition of this function logic. usage:
func MyFilterMonitor(method, requestPath string, t time.Duration) bool { if method == "POST" { return false } if t.Nanoseconds() < 100 { return false } if strings.HasPrefix(requestPath, "/zhaocloud") { return false } return true } beego.FilterMonitorFunc = MyFilterMonitor.
var FormType = map[string]bool{ "text": true, "textarea": true, "hidden": true, "password": true, }
form types for RenderForm function
var SUCCODE = map[string]int{ "get": http.StatusOK, "delete": http.StatusNoContent, "put": http.StatusCreated, "post": http.StatusCreated, "patch": http.StatusResetContent, "head": http.StatusOK, }
var ( // custom error when user stop request handler manually. USERSTOPRUN = errors.New("User stop run") )
Functions ¶
func AddAPPStartHook ¶
func AddAPPStartHook(hf hookfunc)
The hookfunc will run in beego.Run() such as sessionInit, middlerware start, buildtemplate, admin start
func AddFuncMap ¶
AddFuncMap let user to register a func in the template.
func AddNamespace ¶
func AddNamespace(nl ...*Namespace)
func BuildTemplate ¶
build all template files in a directory. it makes beego can render any template file in view directory.
func Compare ¶
func Compare(a, b interface{}) (equal bool)
Compare is a quick and dirty comparison function. It will convert whatever you give it to strings and see if the two values are equal. Whitespace is trimmed. Used by the template parser as "eq".
func DateFormat ¶
DateFormat takes a time and a layout string and returns a string with the formatted date. Used by the template parser as "dateformat"
func ExceptMethodAppend ¶
func ExceptMethodAppend(action string)
To append a slice's value into "exceptMethod", for controller's methods shouldn't reflect to AutoRouter
func GetInitListener ¶
Get current net.Listen in running process.
func HasTemplateExt ¶
return this path contains supported template extension of beego or not.
func ParseConfig ¶
func ParseConfig() (err error)
ParseConfig parsed default config file. now only support ini, next will support json.
func RegistZhaoController ¶
func RegistZhaoController(c ControllerInterface)
通过这个函数注册controller, 每个controller的init()都需要调用这个函数
func RenderForm ¶
render object to form html. obj must be a struct pointer.
func SaveAccess ¶
func SaveAccess(start time.Time, context *beecontext.Context)
func SetLevel ¶
func SetLevel(l int)
SetLogLevel sets the global log level used by the simple logger.
func SetLogFuncCall ¶
func SetLogFuncCall(b bool)
func TestBeegoInit ¶
func TestBeegoInit(apppath string)
func UrlFor ¶
UrlFor returns url string with another registered controller handler with params.
usage: UrlFor(".index") print UrlFor("index") router /login print UrlFor("login") print UrlFor("login", "next","/"") router /profile/:username print UrlFor("profile", ":username","John Doe") result: / /login /login?next=/ /user/John%20Doe more detail http://beego.me/docs/mvc/controller/urlbuilding.md
func WaitSignal ¶
Listener waits signal to kill or interrupt then restart.
Types ¶
type App ¶
type App struct {
Handlers *ControllerRegistor
}
App defines beego application with a new PatternServeMux.
func AddFilter ¶
func AddFilter(pattern, action string, filter FilterFunc) *App
[Deprecated] use InsertFilter. Filter adds a FilterFunc under pattern condition and named action. The actions contains BeforeRouter,AfterStatic,BeforeExec,AfterExec and FinishRouter. it's alias of App.Filter.
func AddGroupRouter ¶
func AddGroupRouter(prefix string, groups GroupRouters) *App
AddGroupRouter with the prefix it will register the router in BeeApp the follow code is write in modules: GR:=NewGroupRouters() GR.AddRouter("/login",&UserController,"get:Login") GR.AddRouter("/logout",&UserController,"get:Logout") GR.AddRouter("/register",&UserController,"get:Reg") the follow code is write in app: import "github.com/beego/modules/auth" AddRouterGroup("/admin", auth.GR)
func AutoPrefix ¶
func AutoPrefix(prefix string, c ControllerInterface) *App
AutoPrefix adds controller handler to BeeApp with prefix. it's same to App.AutoRouterWithPrefix.
func AutoRouter ¶
func AutoRouter(c ControllerInterface) *App
AutoRouter adds defined controller handler to BeeApp. it's same to App.AutoRouter.
func DelStaticPath ¶
DelStaticPath removes the static folder setting in this url pattern in beego application. it's alias of App.DelStaticPath.
func Errorhandler ¶
func Errorhandler(err string, h http.HandlerFunc) *App
ErrorHandler registers http.HandlerFunc to each http err code string. usage:
beego.ErrorHandler("404",NotFound) beego.ErrorHandler("500",InternalServerError)
func InsertFilter ¶
func InsertFilter(pattern string, pos int, filter FilterFunc) *App
InsertFilter adds a FilterFunc with pattern condition and action constant. The pos means action constant including beego.BeforeRouter, beego.AfterStatic, beego.BeforeExec, beego.AfterExec and beego.FinishRouter. it's alias of App.InsertFilter.
func RESTRouter ¶
func RESTRouter(rootpath string, c ControllerInterface) *App
RESTRouter adds a restful controller handler to BeeApp. its' controller implements beego.ControllerInterface and defines a param "pattern/:objectId" to visit each resource.
func Router ¶
func Router(rootpath string, c ControllerInterface, mappingMethods ...string) *App
Router adds a patterned controller handler to BeeApp. it's an alias method of App.Router.
func SetStaticPath ¶
SetStaticPath sets static directory and url prefix to BeeApp. it's alias of App.SetStaticPath.
func SetViewsPath ¶
SetViewsPath sets view directory to BeeApp. it's alias of App.SetViewsPath.
func (*App) Any ¶
func (app *App) Any(rootpath string, f FilterFunc) *App
add router for Patch method
func (*App) AutoRouter ¶
func (app *App) AutoRouter(c ControllerInterface) *App
AutoRouter adds beego-defined controller handler. if beego.AddAuto(&MainContorlller{}) and MainController has methods List and Page, visit the url /main/list to exec List function or /main/page to exec Page function.
func (*App) AutoRouterWithPrefix ¶
func (app *App) AutoRouterWithPrefix(prefix string, c ControllerInterface) *App
AutoRouterWithPrefix adds beego-defined controller handler with prefix. if beego.AutoPrefix("/admin",&MainContorlller{}) and MainController has methods List and Page, visit the url /admin/main/list to exec List function or /admin/main/page to exec Page function.
func (*App) DelStaticPath ¶
DelStaticPath removes the static folder setting in this url pattern in beego application. it returns beego application self.
func (*App) Delete ¶
func (app *App) Delete(rootpath string, f FilterFunc) *App
add router for Delete method
func (*App) Filter ¶
func (app *App) Filter(pattern, action string, filter FilterFunc) *App
[Deprecated] use InsertFilter. Filter adds a FilterFunc under pattern condition and named action. The actions contains BeforeRouter,AfterStatic,BeforeExec,AfterExec and FinishRouter.
func (*App) Head ¶
func (app *App) Head(rootpath string, f FilterFunc) *App
add router for Head method
func (*App) InsertFilter ¶
func (app *App) InsertFilter(pattern string, pos int, filter FilterFunc) *App
InsertFilter adds a FilterFunc with pattern condition and action constant. The pos means action constant including beego.BeforeRouter, beego.AfterStatic, beego.BeforeExec, beego.AfterExec and beego.FinishRouter.
func (*App) Options ¶
func (app *App) Options(rootpath string, f FilterFunc) *App
add router for Options method
func (*App) Patch ¶
func (app *App) Patch(rootpath string, f FilterFunc) *App
add router for Patch method
func (*App) Post ¶
func (app *App) Post(rootpath string, f FilterFunc) *App
add router for Post method
func (*App) Router ¶
func (app *App) Router(path string, c ControllerInterface, mappingMethods ...string) *App
Router adds a url-patterned controller handler. The path argument supports regex rules and specific placeholders. The c argument needs a controller handler implemented beego.ControllerInterface. The mapping methods argument only need one string to define custom router rules. usage:
simple router beego.Router("/admin", &admin.UserController{}) beego.Router("/admin/index", &admin.ArticleController{}) regex router beego.Router(“/api/:id([0-9]+)“, &controllers.RController{}) custom rules beego.Router("/api/list",&RestController{},"*:ListFood") beego.Router("/api/create",&RestController{},"post:CreateFood") beego.Router("/api/update",&RestController{},"put:UpdateFood") beego.Router("/api/delete",&RestController{},"delete:DeleteFood")
func (*App) SetStaticPath ¶
SetStaticPath sets static directory path and proper url pattern in beego application. if beego.SetStaticPath("static","public"), visit /static/* to load static file in folder "public". it returns beego application self.
func (*App) SetViewsPath ¶
SetViewsPath sets view directory path in beego application. it returns beego application self.
type Controller ¶
type Controller struct { Ctx *context.Context Data map[interface{}]interface{} TplNames string Layout string LayoutSections map[string]string // the key is the section name and the value is the template name TplExt string CruSession session.SessionStore XSRFExpire int AppController interface{} EnableRender bool EnableXSRF bool // contains filtered or unexported fields }
Controller defines some basic http request handler operations, such as http context, template and view, session and xsrf.
func (*Controller) Abort ¶
func (c *Controller) Abort(code string)
Aborts stops controller handler and show the error data if code is defined in ErrorMap or code string.
func (*Controller) CheckXsrfCookie ¶
func (c *Controller) CheckXsrfCookie() bool
CheckXsrfCookie checks xsrf token in this request is valid or not. the token can provided in request header "X-Xsrftoken" and "X-CsrfToken" or in form field value named as "_xsrf".
func (*Controller) DelSession ¶
func (c *Controller) DelSession(name interface{})
SetSession removes value from session.
func (*Controller) Delete ¶
func (c *Controller) Delete()
Delete adds a request function to handle DELETE request.
func (*Controller) DestroySession ¶
func (c *Controller) DestroySession()
DestroySession cleans session data and session cookie.
func (*Controller) Finish ¶
func (c *Controller) Finish()
Finish runs after request function execution.
func (*Controller) Get ¶
func (c *Controller) Get()
Get adds a request function to handle GET request.
func (*Controller) GetBool ¶
func (c *Controller) GetBool(key string) (bool, error)
GetBool returns input value as bool.
func (*Controller) GetControllerAndAction ¶
func (c *Controller) GetControllerAndAction() (controllerName, actionName string)
GetControllerAndAction gets the executing controller name and action name.
func (*Controller) GetFile ¶
func (c *Controller) GetFile(key string) (multipart.File, *multipart.FileHeader, error)
GetFile returns the file data in file upload field named as key. it returns the first one of multi-uploaded files.
func (*Controller) GetFloat ¶
func (c *Controller) GetFloat(key string) (float64, error)
GetFloat returns input value as float64.
func (*Controller) GetInt ¶
func (c *Controller) GetInt(key string) (int64, error)
GetInt returns input value as int64.
func (*Controller) GetSecureCookie ¶
func (c *Controller) GetSecureCookie(Secret, key string) (string, bool)
GetSecureCookie returns decoded cookie value from encoded browser cookie values.
func (*Controller) GetSession ¶
func (c *Controller) GetSession(name interface{}) interface{}
GetSession gets value from session.
func (*Controller) GetString ¶
func (c *Controller) GetString(key string) string
GetString returns the input value by key string.
func (*Controller) GetStrings ¶
func (c *Controller) GetStrings(key string) []string
GetStrings returns the input string slice by key string. it's designed for multi-value input field such as checkbox(input[type=checkbox]), multi-selection.
func (*Controller) Head ¶
func (c *Controller) Head()
Head adds a request function to handle HEAD request.
func (*Controller) Init ¶
func (c *Controller) Init(ctx *context.Context, controllerName, actionName string, app interface{})
Init generates default values of controller operations.
func (*Controller) Input ¶
func (c *Controller) Input() url.Values
Input returns the input data map from POST or PUT request body and query string.
func (*Controller) IsAjax ¶
func (c *Controller) IsAjax() bool
IsAjax returns this request is ajax or not.
func (*Controller) Options ¶
func (c *Controller) Options()
Options adds a request function to handle OPTIONS request.
func (*Controller) ParseForm ¶
func (c *Controller) ParseForm(obj interface{}) error
ParseForm maps input data map to obj struct.
func (*Controller) Patch ¶
func (c *Controller) Patch()
Patch adds a request function to handle PATCH request.
func (*Controller) Post ¶
func (c *Controller) Post()
Post adds a request function to handle POST request.
func (*Controller) Prepare ¶
func (c *Controller) Prepare()
Prepare runs after Init before request function execution.
func (*Controller) Put ¶
func (c *Controller) Put()
Put adds a request function to handle PUT request.
func (*Controller) Redirect ¶
func (c *Controller) Redirect(url string, code int)
Redirect sends the redirection response to url with status code.
func (*Controller) Render ¶
func (c *Controller) Render() error
Render sends the response with rendered template bytes as text/html type.
func (*Controller) RenderBytes ¶
func (c *Controller) RenderBytes() ([]byte, error)
RenderBytes returns the bytes of rendered template string. Do not send out response.
func (*Controller) RenderString ¶
func (c *Controller) RenderString() (string, error)
RenderString returns the rendered template string. Do not send out response.
func (*Controller) SaveToFile ¶
func (c *Controller) SaveToFile(fromfile, tofile string) error
SaveToFile saves uploaded file to new path. it only operates the first one of mutil-upload form file field.
func (*Controller) ServeFormatted ¶
func (c *Controller) ServeFormatted()
func (*Controller) ServeJson ¶
func (c *Controller) ServeJson(encoding ...bool)
ServeJson sends a json response with encoding charset.
func (*Controller) ServeJsonp ¶
func (c *Controller) ServeJsonp()
ServeJsonp sends a jsonp response.
func (*Controller) ServeREST ¶
func (c *Controller) ServeREST(err error, encoding ...bool)
ServeJson sends a json response with encoding charset.
func (*Controller) SessionRegenerateID ¶
func (c *Controller) SessionRegenerateID()
SessionRegenerateID regenerates session id for this session. the session data have no changes.
func (*Controller) SetSecureCookie ¶
func (c *Controller) SetSecureCookie(Secret, name, value string, others ...interface{})
SetSecureCookie puts value into cookie after encoded the value.
func (*Controller) SetSession ¶
func (c *Controller) SetSession(name interface{}, value interface{})
SetSession puts value into session.
func (*Controller) StartSession ¶
func (c *Controller) StartSession() session.SessionStore
StartSession starts session and load old session data info this controller.
func (*Controller) StopRun ¶
func (c *Controller) StopRun()
StopRun makes panic of USERSTOPRUN error and go to recover function if defined.
func (*Controller) UrlFor ¶
func (c *Controller) UrlFor(endpoint string, values ...string) string
UrlFor does another controller handler in this request function. it goes to this controller method if endpoint is not clear.
func (*Controller) XsrfFormHtml ¶
func (c *Controller) XsrfFormHtml() string
XsrfFormHtml writes an input field contains xsrf token value.
func (*Controller) XsrfToken ¶
func (c *Controller) XsrfToken() string
XsrfToken creates a xsrf token string and returns.
type ControllerInterface ¶
type ControllerInterface interface { Init(ct *context.Context, controllerName, actionName string, app interface{}) Prepare() Get() Post() Delete() Put() Head() Patch() Options() Finish() Render() error XsrfToken() string CheckXsrfCookie() bool }
ControllerInterface is an interface to uniform all controller handler.
type ControllerRegistor ¶
type ControllerRegistor struct {
// contains filtered or unexported fields
}
ControllerRegistor containers registered router rules, controller handlers and filters.
func NewControllerRegistor ¶
func NewControllerRegistor() *ControllerRegistor
NewControllerRegistor returns a new ControllerRegistor.
func (*ControllerRegistor) Add ¶
func (p *ControllerRegistor) Add(pattern string, c ControllerInterface, mappingMethods ...string)
Add controller handler and pattern rules to ControllerRegistor. usage:
default methods is the same name as method Add("/user",&UserController{}) Add("/api/list",&RestController{},"*:ListFood") Add("/api/create",&RestController{},"post:CreateFood") Add("/api/update",&RestController{},"put:UpdateFood") Add("/api/delete",&RestController{},"delete:DeleteFood") Add("/api",&RestController{},"get,post:ApiFunc") Add("/simple",&SimpleController{},"get:GetFunc;post:PostFunc")
func (*ControllerRegistor) AddAuto ¶
func (p *ControllerRegistor) AddAuto(c ControllerInterface)
Add auto router to ControllerRegistor. example beego.AddAuto(&MainContorlller{}), MainController has method List and Page. visit the url /main/list to execute List function /main/page to execute Page function.
func (*ControllerRegistor) AddAutoPrefix ¶
func (p *ControllerRegistor) AddAutoPrefix(prefix string, c ControllerInterface)
Add auto router to ControllerRegistor with prefix. example beego.AddAutoPrefix("/admin",&MainContorlller{}), MainController has method List and Page. visit the url /admin/main/list to execute List function /admin/main/page to execute Page function.
func (*ControllerRegistor) AddFilter ¶
func (p *ControllerRegistor) AddFilter(pattern, action string, filter FilterFunc) error
[Deprecated] use InsertFilter. Add FilterFunc with pattern for action.
func (*ControllerRegistor) AddMethod ¶
func (p *ControllerRegistor) AddMethod(method, pattern string, f FilterFunc)
add http method router usage:
AddMethod("get","/api/:id", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) Any ¶
func (p *ControllerRegistor) Any(pattern string, f FilterFunc)
add all method usage:
Any("/api/:id", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) Delete ¶
func (p *ControllerRegistor) Delete(pattern string, f FilterFunc)
add delete method usage:
Delete("/api/:id", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) Get ¶
func (p *ControllerRegistor) Get(pattern string, f FilterFunc)
add get method usage:
Get("/", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) Handler ¶
func (p *ControllerRegistor) Handler(pattern string, h http.Handler, options ...interface{})
func (*ControllerRegistor) Head ¶
func (p *ControllerRegistor) Head(pattern string, f FilterFunc)
add head method usage:
Head("/api/:id", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) InsertFilter ¶
func (p *ControllerRegistor) InsertFilter(pattern string, pos int, filter FilterFunc) error
Add a FilterFunc with pattern rule and action constant.
func (*ControllerRegistor) Options ¶
func (p *ControllerRegistor) Options(pattern string, f FilterFunc)
add options method usage:
Options("/api/:id", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) Patch ¶
func (p *ControllerRegistor) Patch(pattern string, f FilterFunc)
add patch method usage:
Patch("/api/:id", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) Post ¶
func (p *ControllerRegistor) Post(pattern string, f FilterFunc)
add post method usage:
Post("/api", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) Put ¶
func (p *ControllerRegistor) Put(pattern string, f FilterFunc)
add put method usage:
Put("/api/:id", func(ctx *context.Context){ ctx.Output.Body("hello world") })
func (*ControllerRegistor) ServeHTTP ¶
func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
Implement http.Handler interface.
type FilterRouter ¶
type FilterRouter struct {
// contains filtered or unexported fields
}
FilterRouter defines filter operation before controller handler execution. it can match patterned url and do filter function when action arrives.
func (*FilterRouter) ValidRouter ¶
func (mr *FilterRouter) ValidRouter(router string) (bool, map[string]string)
ValidRouter check current request is valid for this filter. if matched, returns parsed params in this request by defined filter router pattern.
type FlashData ¶
FlashData is a tools to maintain data when using across request.
func ReadFromRequest ¶
func ReadFromRequest(c *Controller) *FlashData
ReadFromRequest parsed flash data from encoded values in cookie.
func (*FlashData) Store ¶
func (fd *FlashData) Store(c *Controller)
Store does the saving operation of flash data. the data are encoded and saved in cookie.
type GroupRouters ¶
type GroupRouters []groupRouter
RouterGroups which will store routers
func (*GroupRouters) AddAuto ¶
func (gr *GroupRouters) AddAuto(c ControllerInterface)
func (*GroupRouters) AddRouter ¶
func (gr *GroupRouters) AddRouter(pattern string, c ControllerInterface, mappingMethod ...string)
Add Router in the GroupRouters it is for plugin or module to register router
type Namespace ¶
type Namespace struct {
// contains filtered or unexported fields
}
func NewNamespace ¶
func (*Namespace) AutoPrefix ¶
func (n *Namespace) AutoPrefix(prefix string, c ControllerInterface) *Namespace
func (*Namespace) AutoRouter ¶
func (n *Namespace) AutoRouter(c ControllerInterface) *Namespace
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
这里处理所有要output的REST错误
|
这里处理所有要output的REST错误 |
example
|
|
chat
Beego (http://beego.me/) @description beego is an open-source, high-performance web framework for the Go programming language.
|
Beego (http://beego.me/) @description beego is an open-source, high-performance web framework for the Go programming language. |
plugins
|
|
captcha
an example for use captcha “` package controllers import ( "github.com/zhaocloud/beego" "github.com/zhaocloud/beego/cache" "github.com/zhaocloud/beego/utils/captcha" ) var cpt *captcha.Captcha func init() { // use beego cache system store the captcha data store := cache.NewMemoryCache() cpt = captcha.NewWithFilter("/captcha/", store) } type MainController struct { beego.Controller } func (this *MainController) Get() { this.TplNames = "index.tpl" } func (this *MainController) Post() { this.TplNames = "index.tpl" this.Data["Success"] = cpt.VerifyReq(this.Ctx.Request) } “` template usage “` {{.Success}} <form action="/" method="post"> {{create_captcha}} <input name="captcha" type="text"> </form> “`
|
an example for use captcha “` package controllers import ( "github.com/zhaocloud/beego" "github.com/zhaocloud/beego/cache" "github.com/zhaocloud/beego/utils/captcha" ) var cpt *captcha.Captcha func init() { // use beego cache system store the captcha data store := cache.NewMemoryCache() cpt = captcha.NewWithFilter("/captcha/", store) } type MainController struct { beego.Controller } func (this *MainController) Get() { this.TplNames = "index.tpl" } func (this *MainController) Post() { this.TplNames = "index.tpl" this.Data["Success"] = cpt.VerifyReq(this.Ctx.Request) } “` template usage “` {{.Success}} <form action="/" method="post"> {{create_captcha}} <input name="captcha" type="text"> </form> “` |