ecgo 是一个易学、易用、易扩展的web开发框架。核心功能包括:
-
自动规则路由,支持RESTful
-
request的二次封装
- 可以直接使用格式化的Get,Post,Cookie,Session等变量来处理请求数据
- 方便的上传文件操作
-
response二次封装
- 添加SetCookie,SetHeader,ShowErr,Redirect等方法
- 支持模板渲染Render,模板支持include子模板
-
内置基于文件和memcache的session支持,同时支持自定义sessionHandler
-
支持静态文件服务
-
提供ini配置文件读取,benchmark,log等辅助方法
-
支持mysql和memcache的dao封装,简化数据操作
-
提供pv、流量的实时统计
-
其它
- 配置文件和预编译模板的实时重新加载
- 提供validator,支持扩展规则
- daemon (github.com/tim1020/godaemon)
Copyright 2016 ecgo Author. All Rights Reserved. Licensed under LGPL ,see http://www.gnu.org/licenses/lgpl.html
如有任何疑问,请联系本人: [email protected]
-
开发目录 ($GOPATH/src/yourapp)
- controller/ #放置controller代码
- service/ #放置model相关代码
- conf/ #存放配置文件
- logs/ #日志目录
- public/ #静态文件目录
- views/ #视图模板目录
- yourapp.go #main入口文件
其中,安装时,conf,public,views三个目录会完整copy到安装目录
-
安装目录(应用开发完成后,正式部署的目录结构)
- conf/ #存放配置文件
- logs/ #日志目录(要求可写)
- public/ #静态文件目录
- views/ #视图模板目录
- yourapp #应用执行文件
(首先,你要安装好你的go开发环境,并设置好$GOPATH)
-
获得ecgo
go get github.com/tim1020/ecgo chmod +x $GOPATH/src/github.com/tim1020/ecgo/tools/ecgo
-
创建应用
cd $GOPATH/src/github.com/tim1020/ecgo/tools/ ./ecgo new appname
(名为appname的应用将会被创建在$GOPATH/src/appname)
-
编写你的应用
- 根椐需要,修改conf.ini
- 编写你的service和controller
-
安装应用到指定目录
cd $GOPATH/src/github.com/tim1020/ecgo/tools ./ecgo install appname dst
package main
import "github.com/tim1020/ecgo"
type C struct {
*ecgo.Request
}
func main() {
log.Fatal(ecgo.Server(&C{},nil)) //第二参数可指定自定义sessionHandler
}
//controller
func (this *C) Action() {
this.Render("a.tpl",data)
}