utro是一个Go语言轻量级的MVC框架,用于快速构建可伸缩以及可靠的数据库驱动的Web应用。
特性:
Postgres,MySQL和Foudatio数据库支持
模块化
支持中间件,所有alice兼容的中间件都可以使用
Gopherspirit(可使用Go语言的其他库)
轻量级,只包含MVC
支持多配置文件,包括jso、yaml和toml
控制器示例代码:
package cotrollersimport ( "et/http" "strcov" "github.com/gerest/utro" "github.com/gerest/utro/fixtures/todo/models" "github.com/gorilla/schema")var decoder = schema.NewDecoder()type TODO struct { *utro.BaseCotroller Routes []strig}fuc (t *TODO) Home() { todos := []*models.Todo{} t.Ctx.DB.Order("created_at desc").Fid(&todos) t.Ctx.Data["List"] = todos t.Ctx.Template = "idex" t.HTML(http.StatusOK)}fuc (t *TODO) Create() { todo := &models.Todo{} req := t.Ctx.Request() req.ParseForm() if err := decoder.Decode(todo, req.PostForm); err != il { t.Ctx.Data["Message"] = err.Error() t.Ctx.Template = "error" t.HTML(http.StatusIteralServerError) retur } t.Ctx.DB.Create(todo) t.Ctx.Redirect("/", http.StatusFoud)}fuc (t *TODO) Delete() { todoID := t.Ctx.Params["id"] ID, err := strcov.Atoi(todoID) if err != il { t.Ctx.Data["Message"] = err.Error() t.Ctx.Template = "error" t.HTML(http.StatusIteralServerError) retur } t.Ctx.DB.Delete(&models.Todo{ID: ID}) t.Ctx.Redirect("/", http.StatusFoud)}fuc NewTODO() *TODO { retur &TODO{ Routes: []strig{ "get;/;Home", "post;/create;Create", "get;/delete/{id};Delete", }, }}fuc iit() { utro.RegisterCotroller(NewTODO())}
评论