Go语言Web框架Revel介绍

Revel是一个Go语言的web框架,其具有热编译,高性能,无状态,模块化等特性,非常适合做web开发。这个框架源于java的 Play! Framework.清晰的MVC结构,是现在go语言Web框架中优秀的框架。

Revel框架特性

热编译

编辑, 保存, 和 刷新时,Revel自动编译代码和模板,如果代码编译错误,会给出一个 错误提示,同时捕捉 运行期错误。

全栈功能

Revel 支持: 路由, 参数解析, 验证, session/flash, 模板, 缓存, 计划任务, 测试, 国际化 等功能。

高性能

Revel 基于 Go HTTP server 构建。 这是techempower发布的 最新评测结果 。在各种不同的场景下进行了多达三到十次的请求负载测试。

框架设计

同步

Go HTTP server 对于每个请求都运行在 goroutine上。Write simple callback-free code without guilt。

无状态

Revel 提供了保持Web层无状态的可预知的扩展。例如,会话数据被存储在用户的cookie中,缓存由memcached集群提供支持。

模块化

Revel框架由被称为 过滤器 的中间件组成,它实现了几乎所有的请求处理功能。 开发者可以自由地使用自定义的过滤器,比如如自定义的路由器,用以替换Revel默认的路由过滤器。

快速开始

1、安装revel之前,先安装go环境

2、安装还需要hg和git支持

3、设置GOPATH,然后把revel下载并安装到GOPATH内mkdir ~/gocode

cd $GOPATH

go get github.com/robfig/revel

4.编译revel命令行工具,revel自己封装了go的命令行工具,创建revel项目、打包发布基本都用这个工具,执行下面的命令go build -o bin/revel github.com/robfig/revel/cmd

5.可以将编译出来的revel命令行工具加到$PATH变量中方便调用export PATH="$PATH:$GOPATH/bin"

6.最后验证revel是否可以工作了$ revel help

~

~ revel! http://robfig.github.com/revel

~

usage: revel command [arguments]

The commands are:

run run a Revel application

new create a skeleton Revel application

clean clean a Revel application's temp files

package package a Revel application (e.g. for deployment)

Use "revel help [command]" for more information.

概要说明

本节简要介绍框架的几个主要组成部分:路由采用简单的声明性语法。反向路由类型安全。控制器组织端点到控制器。提供易用的数据绑定和表单验证。模板使用 Go 模板支持大规模应用.拦截器在一个函数运行之前或之后被调用. 控制器的方法都可以被注册拦截.过滤器通用的功能可以使用过滤器来实现.

Revel路由

路由采用声明性语法. 所有的路由都定义在一个routes文件中。 使用简单的语法匹配路由, 并从 URI 中提取参数到控制器中. 下面是带注释的示例:# conf/routes

# 这个文件定义了所有的路由 (优先级按照先后顺序)

GET /login Application.Login # 匹配一个简单的路由

GET /hotels/ Hotels.Index # 匹配一个带或者不带斜线的路由

GET /hotels/:id Hotels.Show # 绑定到一个控制器参数

WS /hotels/:id/feed Hotels.Feed # WebSockets

POST /hotels/:id/:action Hotels.:action # 自由绑定到一个控制器的多个方法

GET /public/*filepath Static.Serve("public") # 静态文件服务

* /:controller/:action :controller.:action # 自动捕捉所有动作,自动生成路由

反向路由以类型安全的方式生成. 例如下面的Save程序:// 展示信息.

func (c Hotels) Show(id int) revel.Result {

hotel := HotelById(id)

return c.Render(hotel)

}

// 保存信息,并重定向到Hotels.Show.

func (c Hotels) Save(hotel Hotel) revel.Result {

// validate and save hotel

return c.Redirect(routes.Hotels.Show(hotel.Id))

}

revel MySQL_Revel 教程相关推荐

  1. linux杀死线程函数,Linux线程-pthread_kill

    该函数可以用于向指定的线程发送信号: int pthread_kill(pthread_t threadId,int signal); 如果线程内不对信号进行处理,则调用默认的处理程式,如SIGQUI ...

  2. 二十一世纪大学英语读写教程(第四册)学习笔记(原文)——10 - My Graduation Speech(毕业演说)

    Unit 10 - My Graduation Speech(毕业演说) My Graduation Speech Neil Postman Author's Note: Having sat thr ...

  3. 基于阿里云服务器ECS和宝塔面板,适合初学者的蚂蚁笔记(Leanote)超详细配置教程(但是真的不好用)

    文章目录 前言 环境准备 蚂蚁笔记(Leanote)介绍 一.设置安全组.配置规则 二.安装 Leanote 二进制版 三.安装MongoDB 四.导入Leanote初始数据 五.配置 Leanote ...

  4. 基于阿里云部署和搭建私人云笔记完整教程—leanote

    本篇教程主要是带大家在自己的Linux服务器上搭建属于自己的开源云笔记系统. leanote官网 https://leanote.com/ [蚂蚁笔记 = 笔记 + 博客 + 协作 + 私有云] 私有 ...

  5. 开源笔记系统leanote安装和部署完整教程

    本篇教程主要是带大家在自己的Linux服务器上搭建属于自己的开源云笔记系统. leanote官网 https://leanote.com/ [蚂蚁笔记 = 笔记 + 博客 + 协作 + 私有云] 私有 ...

  6. 云服务器部署和安装开源笔记leanote完整教程

    本篇教程主要是带大家在自己的Linux服务器上搭建属于自己的开源云笔记系统. leanote官网 https://leanote.com/ [蚂蚁笔记 = 笔记 + 博客 + 协作 + 私有云] 私有 ...

  7. 使用Docker搭建svn服务器教程

    使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很 ...

  8. mysql修改校对集_MySQL 教程之校对集问题

    本篇文章主要给大家介绍mysql中的校对集问题,希望对需要的朋友有所帮助! 推荐参考教程:<mysql教程> 校对集问题 校对集,其实就是数据的比较方式. 校对集,共有三种,分别为:_bi ...

  9. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程

    原标题:Navicat for MySQL 数据备份教程 一个安全和可靠的服务器与定期运行备份有密切的关系,因为错误有可能随时发生,由攻击.硬件故障.人为错误.电力中断等都会照成数据丢失.备份功能为防 ...

  10. php rabbmq教程_RabbitMQ+PHP 教程一(Hello World)

    介绍 RabbitMQ是一个消息代理器:它接受和转发消息.你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里.在这个比喻中,RabbitMQ就是这里的邮箱 ...

最新文章

  1. MFC的类层次结构图
  2. Vue.js 系列教程 3:Vue-cli,生命周期钩子
  3. Windows Azure Storage (4) Windows Azure Storage Service存储服务之Blob Share Access Signature
  4. 优秀自我简介200字_全球战疫 翰墨传情——东方盛世杯网络公益书画展优秀作品【二】...
  5. ldap radius mysql_OpenLDAP+FreeRADIUS+MySQL+RP-PPPOE 构建PPPOE服务器
  6. 《计算机网络》学习笔记 ·005【传输层】
  7. ncnn数据归一化和结果解析
  8. 速读-高级技能二:并行输入训练
  9. ElasticSearch全文搜索引擎之查询API操作详解
  10. 渤海银行天津分行计算机笔试,关于渤海银行笔试经验分享
  11. 设置maven的本地位置和maven镜像
  12. aspcms修改数据报错问题
  13. OSChina 周三乱弹 —— 东京不热,北海道有点热
  14. 短视频平台还能这样赚钱?无需拍视频,每天能赚200多详细流程
  15. Springboot+采用协同过滤算法的家政服务平台的设计与实现 毕业设计-附源码260839
  16. Arch Linux KDE Plasma + Windows 11 双系统安装指南
  17. Unity3D--控制鼠标的显示与隐藏
  18. 什么是AJAX的同步异步?
  19. 2021年中国洋葱行业市场现状分析:洋葱价格创下近年新高[图]
  20. Bootstrap Table 中文文档(完整翻译版)

热门文章

  1. 【成功解决】运行qt生成的.exe文件报“无法找到入口”的问题
  2. Polygon 上 3 款最受欢迎的 GameFi 游戏
  3. 给全国高校本科招办的一封公开信
  4. 织梦CMS插件-支持dedeCMS各大主题
  5. [技术解读]英伟达NVIDIA的3D-VISION和AMD-HD3D主动快门立体方案
  6. 统计学中数据分析方法汇总!
  7. 东芝自助结账设备市场份额增长近50%
  8. 富爸爸,穷爸爸系列书籍目录
  9. dpdk 源码分析 rte_ring
  10. JavaScript之document对象获取元素