Fork me on GitHub

Revel

一个高生产力的 Go 语言 Web 框架 .

1、安装 Revel 框架
$ go get github.com/revel/revel
2、安装 Revel 命令行工具
$ go get github.com/revel/cmd/revel
3、创建 Revel 应用
$ revel new myapp
$ revel run myapp

打开浏览器访问 http://localhost:9000

Your Application Is Ready

$ revel new myapp 命令生成的目录结构如下:
myapp                 项目根目录
├── app               MVC框架目录
│   ├── controllers   控制器目录
│   ├── init.go
│   ├── models        模型目录
│   ├── routes
│   ├── tmp
│   └── views         视图目录
├── conf
│   ├── app.conf      配置文件
│   └── routes        路由文件
├── messages          国际化目录
├── public            静态文件目录
└── tests

1、路由../myapp/conf/routes

GET     /                                       App.Index

当浏览器访问 /, 即 http://localhost:9000/ 的时候,Revel会执行App控制器的Index方法


2、控制器../myapp/app/controllers

package controllers

import "github.com/revel/revel"

type App struct {
  *revel.Controller
}

func (c App) Index() revel.Result {
  return c.Render()
}

3、视图(Templates)../myapp/app/views

所有的模板都保存在 views 目录中. 这个例子中 Revel 查找 Index.html 模板, 并作为一个 Go template 进行渲染.

{{set . "title" "Home"}}
{{template "header.html" .}}

<header class="hero-unit" style="background-color:#A9F16C">
  <div class="container">
  <div class="row">
    <div class="hero-text">
    <h1>It works!</h1>
    <p></p>
    </div>
  </div>
  </div>
</header>

<div class="container">
  <div class="row">
  <div class="span6">
    {{template "flash.html" .}}
  </div>
  </div>
</div>

{{template "footer.html" .}}

Revel 添加了一些 Go template 没有的方法,比如eq,set,field 等好用的方法。

我们也可以自定义模板方法,下面是个简单的例子.

func init() {
  revel.TemplateFuncs["eq"] = func(a, b interface{}) bool { return a == b }
}

更多Revel内容,请参考 本站文档官方手册