RevelGo 的 全堆栈 Web 框架

联合创作 · 2023-09-20 15:33

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)
}
浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报