Revel是一个go语言写的web框架,这个框架源于java的 Play! Framework.清晰的MVC结构,是现在go语言Web框架中优秀的框架。
Revel的功能有
1.热部署
Revel会自动编译你的go代码和templates模板文件,这个类似jsp功能。
2.简单的选择
Revel提供了一个工具包,用户日常的网络维护。也可以放弃这个工具包,直接访问底层应用。
3.轻量级线程
Revel建立在Go Http Server之上,使用Goroutine来处理请求。
Quick Start
安装revel之前,先安装go环境
安装还需要hg和git支持
设置GOPATH,然后把revel安装到GOPATH内
go get github.com/robfig/revel
编译revel
go build -o bin/revel github.com/robfig/revel/cmd
运行revel
bin/revel run github.com/robfig/revel/samples/chat
这里运行了一个revel的应用chat
Revel应用结构
3 |
/controllers #app下用于存放controllers的目录
|
6 |
/controllerName #与controller名对应目录,其下存放模板文件
|
9 |
/public #静态文件,css,js,图片
|
Revel的MVC实现
Model
model就是一个普通结构体,存放属性
View
Revel的View通过 Go Templates来实现
模板存放于views目录下,命名方式是ControllerName/ActionName.html
1 |
{{/* app/views/Application/Register.html */}} |
3 |
{{template "header.html" .}} |
6 |
<form action="/register" method="POST"> |
7 |
{{with $field := field "user.Username" .}}
|
8 |
<p class="{{$field.ErrorClass}}">
|
9 |
<strong>Username:</strong>
|
10 |
<input type="text" name="{{$field.Name}}" size="16" value="{{$field.Flash}}"> *
|
11 |
<span class="error">{{$field.Error}}</span>
|
15 |
{{/* other fields */}}
|
18 |
<input type="submit" value="Register"> <a href="/">Cancel</a>
|
22 |
{{template "footer.html" .}} |
Controller
Controller:负责数据的绑定,验证,cookie和session的处理,业务处理及返回
1 |
/ / app / controllers / app.go
|
2 |
type Application struct {
|
3 |
* revel.Controller / / 创建一个Application的Controller,每一个Controller必须依赖 * revel.Controller,在go中,相当于继承了 * revel.Controller
|
6 |
func (c Application) Register() revel.Result { / / 定义一个Controller的Action
|
11 |
func (c Application) SaveUser(user models.User, verifyPassword string) revel.Result { |
12 |
c.Validation.Required(verifyPassword) / / 通过Controller内部工具来验证验证
|
13 |
c.Validation.Required(verifyPassword = = user.Password)
|
14 |
Message( "Password does not match" )
|
15 |
user.Validate(c.Validation)
|
17 |
if c.Validation.HasErrors() {
|
20 |
return c.Redirect(Application.Register)
|
23 |
user.HashedPassword, _ = bcrypt.GenerateFromPassword(
|
24 |
[]byte(user.Password), bcrypt.DefaultCost)
|
25 |
err : = c.Txn.Insert(&user)
|
30 |
c.Session[ "user" ] = user.Username / / Session处理
|
31 |
c.Flash.Success( "Welcome, " + user.Name)
|
32 |
return c.Redirect(Hotels.Index) / / 从定向到另外一个Action
|
Routing
在mvc中还有重要一点就是routing,Revel如何通过连接来定位Action呢,那需要Routing。
在conf下有一个routes文件用来配置,格式如下
2 |
GET /login Application.Login # A simple path |
3 |
GET /hotels/? Hotels.Index # Match /hotels and /hotels/ (optional trailing slash) |
4 |
GET /hotels/{id} Hotels.Show # Extract a URI argument (matching /[^/]+/) |
5 |
POST /hotels/{<[0-9]+>id} Hotels.Save # URI arg with custom regex |
6 |
WS /hotels/{id}/feed Hotels.Feed # WebSockets. |
7 |
POST /hotels/{id}/{action} Hotels.{action} # Automatically route some actions. |
8 |
GET /public/ staticDir:public # Map /app/public resources under /public/... |
9 |
* /{controller}/{action} {controller}.{action} # Catch all; Automatic URL generation |
支持Http的方法及WobSockets
对于Revel简单介绍到这里了
本篇来源:http://blog.gcove.net/go%E8%AF%AD%E8%A8%80web%E6%A1%86%E6%9E%B6revel%E4%BB%8B%E7%BB%8D.html
分享到:
相关推荐
Go的全堆栈Web框架 Revel ,Revel 是 Go 语言的框架,其思路完全来自 Java 的 Play Framework。控制器...
revel:一个高生产力,全栈的Go语言Web开发框架
Revel 是一个高效的 Go 诧言 Web 开发框架, 模仿 PlayFramework 而来。 我个人认为 Revel 是目前 Go 诧言中比较丌错的一个 Web 开发框架, 虽然它还有 徆多待完善的地方但还是徆值得学习和借鉴的, 我在这里记录一下对...
是一个高效的Go语言Web开发框架, 模仿 Play! Framework 而来, 我个人认为Revel是目前Go语言中比较不错的一个Web开发框架, 虽然它还有很多待完善的地方但还是很值得学习和借鉴滴, 我在这里记录一下偶的对它滴研究过程...
golang web框架 revel简介
一步一步学习Revel Web开源框架.pdf Revel是一个高效的Go 语言Web 开发框架, 模仿Play! Framework 而来,Revel 是目前Go 语言中比较不错的一个Web开发框架。
关于gorevelGo 语言 Revel 框架学习— Revel中文社区 源码,本站使用Revel、xorm构建。配置文件在 src/gorevel/conf 目录中,主配置app.conf,自定义配置my.conf (数据库、邮件)。默认的数据库是mysql,数据库名...
演示 Go 和 Revel 的教程 ... 此应用程序的目的是以易于理解的方式向目标受众展示 Revel Web 框架的主要功能。 阅读教程 此应用程序在文件“Lets_Go_Revel_Written_Tutorial_Holdorf.pdf”中进行了说明
Revel提供了路由,参数解析,验证,会话/闪存,模板,缓存,作业运行,测试框架,甚至国际化。 Revel是围绕可过滤中间件(称为过滤器)构建的,该中间件几乎实现了所有请求处理功能。 开发人员可以自由地用自定义...
这是使用Web MVC框架Revel编写的CRUD Web应用程序的示例。 它利用Postgres作为数据库。 设置 您将需要按照文件info.sql描述创建数据库。 之后,您需要设置Revel: go get github.com/revel/revel go get github....
revel是使用Go的Web框架。 官方网站在这里 但是您可以使用go命令安装revel # get revel framework go get github.com/revel/revel # get 'revel' command go get github.com/revel/cmd/revel # get samples and ...
Go的Bugsnag错误报告器 在Go应用中自动检测崩溃并报告错误。 实时获取有关错误和紧急情况的警报,包括带有诊断信息的详细错误报告。 尽快理解和解决问题。 了解有关Bugsnag的解决方案的更多信息。 特征 自动报告未...
Leanote是一款开源云笔记软件,使用Go的Web框架revel和MongoDB开发完成。也可以查看我的博客,里面有详细的安装过程。
一种用于高生产率,全栈式Web框架。 当前版本:1.0.0(2020-07-11) 支持go.mod软件包管理 快速开始 安装狂欢: go get -u github.com/revel/cmd/revel 创建并运行您的应用程序: revel new -a my-app -r 在...
blog 基于golang开发的个人博客,用于go学习 目前用到的开源项目有: web框架: 数据库: 组件: 前端: 图片采用七牛云
欢迎来到狂欢入门高生产力 Web 框架。启动网络服务器: revel run myapp使用--help运行选项。访问你会看到: “有用”内容说明生成的 Revel 应用程序的默认目录结构: myapp App root app App sources controllers ...
用于的高效Web框架。 启动Web服务器: revel run myapp 使用--help运行选项。 转到 ,您将看到: “有用” 目录说明 生成的Revel应用程序的默认目录结构: myapp App root app App sources controllers App ...
欢迎来到狂欢入门高生产力 Web 框架。启动网络服务器: revel run myapp使用--help运行选项。访问你会看到: “有用”内容说明生成的 Revel 应用程序的默认目录结构: myapp App root app App sources controllers ...
最近接触了go的web开发,框架有beego,gin、revel以及iris,beego虽然很重量级,性能也差iris太远,但是它对国人的学习是十分有好的,首先它的作者是国人,理念呢也还是参照传统的mvc概念,加上详尽的文档是一个非常...
#Go lang文件浏览器受到启发基于Cute文件浏览器CSS CSS 重写Javascript以适合来自服务器的JSON格式后端是使用Revel Web框架以Go编写的当前目录位置已硬编码到本地计算机,但是在生产计算机上,如果设置了ENV变量,则...