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是一个高效且强大的工具,用于快速开发现代Web应用程序。Revel借鉴了Java的Play Framework的设计理念,旨在提供简洁、直观的API,使得开发者能够专注于业务逻辑,而不是底层实现细节。 ...
Go-revel是一个旨在提高开发效率、提供全栈功能的Go语言Web开发框架。它为Go程序员提供了一种简洁、高效的方式来构建健壮的Web应用程序。本文将深入探讨Revel框架的核心特性和使用方法,帮助你更好地理解和应用这个...
### 学习Go框架Revel #### 一、Revel框架简介 Revel是一个高效的Go语言Web开发框架,它的设计理念很大程度上受到了Play! Framework的影响。Revel提供了许多现代Web开发所需的特性,使得开发者能够快速地构建高性能...
Revel是一个基于Go语言的高效Web开发框架,其设计灵感来源于PlayFramework。它通过一套约定俗成的目录结构、文件命名和处理流程,简化了Web应用程序的开发和部署。Revel以模块化的方式组织代码,支持插件、模板渲染...
2. **Revel框架**:Revel是Go语言的一个Web应用框架,它提供了MVC(模型-视图-控制器)架构模式,简化了Web应用的开发。Revel支持路由、依赖注入、中间件、热重载等特性,使得开发者能够快速构建应用程序。在本博客...
Go语言,又称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。其简洁的语法和强大的性能使得它在开发Web应用时受到广泛欢迎。本篇文章将深入探讨在Github上stars数最多的...
本资源“一个基于Go的web框架.zip”显然提供了一个使用Go语言编写的Web框架,这为我们提供了构建高效、可扩展的Web应用程序的基础。让我们深入探讨一下Go语言和Web框架的相关知识点。 Go,也被称为Golang,是Google...
Revel是一个高效的Go语言Web开发框架,它的设计灵感来源于Play! Framework,它通过模仿Play! Framework的功能特点,为Go语言提供了一个高效的Web开发解决方案。Revel以MVC架构为基础,提供了路由、参数绑定、模板...
Revel 框架 一个高生产力、全栈的Go 语言Web 框架。当前版本1.1.0(2022-04-11)支持 go.mod 包管理快速入门安装 Revelgo install github.com/revel/cmd/revel@latest创建并运行您的应用程序revel new -a my-app -r...
Revel是一个高效的Go语言Web开发框架,它的设计理念很大程度上受到了Play! Framework的影响。Revel的主要特点在于其高性能和简洁性,使得开发者能够快速地构建出稳定可靠的Web应用程序。 #### 二、安装与配置 1. *...
关于gorevelGo 语言 Revel 框架学习— Revel中文社区 源码,本站使用Revel、xorm构建。配置文件在 src/gorevel/conf 目录中,主配置app.conf,自定义配置my.conf (数据库、邮件)。默认的数据库是mysql,数据库名...
Revel是一个用Go语言编写的高性能Web应用框架,它的设计灵感来源于Ruby on Rails,旨在提供一个简洁、高效、可扩展的开发环境。Revel的主要目标是简化Go Web开发,让开发者能够快速构建复杂的Web应用程序。 在Revel...
在这个项目中,开发者选择使用Revel作为后端开发的主要工具,因为它是一个快速、功能丰富的全栈式Web框架,适合构建高效的Go应用程序。而MongoDB则作为数据存储解决方案,它是一个流行的NoSQL数据库,特别适合处理非...
Revel 是一个高性能的、基于Go语言的Web应用框架,它的设计灵感来源于Ruby on Rails。Revel 提供了一种简洁的、全栈式的方法来构建Web应用,使得开发者可以更专注于业务逻辑,而不是底层的HTTP处理和路由设置。在...
"mediom, Forum web application, an example for from Rails to Go (Revel).zip" 这个压缩包文件是一个关于将Web应用从Ruby on Rails框架迁移到Go语言(使用Revel框架)的示例项目。这个名为"mediom"的论坛应用提供...
演示 Go 和 Revel 的教程 ... 此应用程序的目的是以易于理解的方式向目标受众展示 Revel Web 框架的主要功能。 阅读教程 此应用程序在文件“Lets_Go_Revel_Written_Tutorial_Holdorf.pdf”中进行了说明
1. **Go语言Web框架**:Go(Golang)是一种静态类型的、编译型的、并发型的、垃圾回收的编程语言,特别适合构建高性能的网络服务。常见的Go Web框架有Gin、Beego、Echo、 Revel等,它们提供了一套方便快捷的方式来...
Revel是Go语言中的一个高性能Web框架,它为开发者提供了类似于Rails或Django的开发体验,使得构建Web应用更为高效。通过Go-Cali,用户可以方便地管理和浏览他们的书籍收藏,同时获取来自豆瓣(douban.com)的额外书籍...
smallnest-go-web-framework-benchmark项目就采用了这种方式,对Go语言中的Web框架进行了一系列的性能测试,包括请求处理速度、内存占用等关键指标。 该项目包含的框架有Gin、Beego、Echo、Iris、 Revel、Martini等...