Revel - Go 的 全堆栈 Web 框架


MIT
跨平台
Google Go

软件简介

Revel 是 Go 语言的框架,其思路完全来自 Java 的 Play
Framework

控制器示例:

// app/controllers/app.go

type Application struct {
    *rev.Controller
}

func (c Application) Register() rev.Result {
    title := "Register"
    return c.Render(title)
}

func (c Application) SaveUser(user models.User, verifyPassword string) rev.Result {
    c.Validation.Required(verifyPassword).Key("verifyPassword")
    c.Validation.Required(verifyPassword == user.Password).Key("verifyPassword").
        Message("Password does not match")
    user.Validate(c.Validation)

    if c.Validation.HasErrors() {
        c.Validation.Keep()
        c.FlashParams()
        return c.Redirect(Application.Register)
    }

    _, err := c.Txn.Exec("insert into User (Username, Password, Name) values (?, ?, ?)",
        user.Username, user.Password, user.Name)
    if err != nil {
        panic(err)
    }

    c.Session["user"] = user.Username
    c.Flash.Success("Welcome, " + user.Name)
    return c.Redirect(Hotels.Index)
}