Go 应用框架 beego 1.7.0,新增改进功能

astaxie
 astaxie
发布于 2016年08月30日
收藏 21

 beego 1.7.0 版本发布了。beego是一个用Go开发的应用框架,思路来自于tornado,路由设计来源于sinatra

新增改进功能:
1. Filter访问速度提升7.5倍以上 #1799
2. Gzip压缩的时候支持不同的level #1808
3. ORM PK支持负数 #1810
4. ORM 支持自定义自增ID的值 #1826
5. Context 下载文件函数改进:下载文件之前先检查是否存在 #1827
6. log增加 GetLogger函数,可以增加相应的前缀 #1832

package main

import "github.com/astaxie/beego/logs"

func main() {
    logs.Warn("this is a warn message")

    l := logs.GetLogger("HTTP")
    l.Println("this is a message of http")

    logs.GetLogger("orm").Println("this is a message of orm")

    logs.Debug("my book is bought in the year of ", 2016)
    logs.Info("this %s cat is %v years old", "yellow", 3)
    logs.Error(1024, "is a very", "good", 2.5, map[string]int{"id": 1})
    logs.Critical("oh my god")
}


7. session增加Log,一旦错误发生可以记录日志. #1833
8. logs包添加两个public函数,EnableFuncCallDepth和SetLogFuncCallDepth, 用来设置函数的调用层级. #1837
9. 支持go run运行beego的项目代码 #1840
10. 添加ExecuteTemplate函数,这样用户就可以通过这种方式访问template,而不是直接访问map,因为map有并发读写问题 #1848
11. ORM 字段支持time类型 #1856
12. ORM One接口只获取一条 #1874
13. ORM支持json jsonb类型 #1875
14. ORM默认使用text类型 #1879
15. session配置三个配置,EnableSidInHttpHeader EnableSidInUrlQuery SessionNameInHttpHeader,
允许用户可以在http头和URL中带sid #1897
16. 自动化路由改进生成的文件名,之前太长了 #1924
17. 支持复杂的模板引擎. ace jade #1940

beego.AddTemplateEngine("ace", func(root, path string, funcs template.FuncMap) (*template.Template, error) {
        aceOptions := &ace.Options{DynamicReload: true, FuncMap: funcs}
        aceBasePath := filepath.Join(root, "base/base")
        aceInnerPath := filepath.Join(root, strings.TrimSuffix(path, ".ace"))

        tpl, err := ace.Load(aceBasePath, aceInnerPath, aceOptions)
        if err != nil {
            return nil, fmt.Errorf("error loading ace template: %v", err)
        }

        return tpl, nil
    })

#1940
18. session引擎支持ssdb #1953
19. RenderForm支持输出required #1993
20. 让打印的beego日志更加美观 #1997

21. ORM支持struct中带有time.Time指针 #2006
22. Controller中增加 TplPrefix 这样就可以在baseController制定读取模板的前缀目录 #2030
23. jsonb函数中增加js函数的判断,避免函数不存在时候出错. #2045
24. ORM增加InsertOrUpdate函数 #2053
25. Filter函数增加重置参数的参数. 因为beego.InsertFilter("*", beego.BeforeStatic, RedirectHTTP)
的时候,参数会赋值给:splat,从而影响后续如果路由里面也有想用的路由,
那么就会引起冲突,因此增加这样的函数以方便用户重置。 #2085
26. session包配置采用对象初始化,而抛弃传递json的方式. 如果独立使用session包的可能会引起兼容性问题#2096
27. Swagger迁移到2.0版本,现在生产的代码无需依赖API,直接生产swagger.json

 bugfix:
1. 静态路由中/m自动跳转到/m/ #1792
2. test的时候解析配置文件出错 #1794
3. 文件rotato的时候产生race condition #1803
4. 修复multiple response.WriteHeader calls的错误 #1805
5. ORM 如果主键是uint的时候panic #1828
6. 日志rotate的时候如果当前时间小于2000 panic #
7. context重用导致XSRF重用#1863
8. ORM InsertMulti的时候当是*类型时panic #1882
9. task中任务在很微小的时间内可能存在执行多次的情况 #1909
10. IE浏览器下载文件名混乱 #1912
11. ORM DISTINCT实现 #1938
12. Logs包里面设置文件的permit时候,int无法设置. #1948 #2003
13. QueryRow 和 QueryRows 查询获取数据后外键字段不填充值 #1964
14. 当beego应用跑在代理之后的时候,scheme通过X-Forwarded-Proto获取 #2050
15. 静态文件访问目录时候跳转到目录/的时候自动带上参数 #2064

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Go 应用框架 beego 1.7.0,新增改进功能
加载中

精彩评论

qii
qii
模板语法太弱了,要是重写模板就好了

最新评论(30

黄者
黄者
一切都不错,就是router.go里面嵌套太狠,用着很爽,看着有点不爽……
黄者
黄者

引用来自“YJW_David”的评论

要是能把性能提升就好了

引用来自“黄者”的评论

感觉是因为路由支持正则的原因,gin、echo、iris快是快,但似乎都不支持正则。

引用来自“红白机”的评论

路由使用正则确实会比不用慢,至于慢多少也不好说。还有就是,我不想使用ORM之类的东西

引用来自“葫芦咩”的评论

慢是因为使用了go自带的net/http库,iris等使用的是fasthttp
gin似乎不是,echo则是有两个版本,其中一个支持fasthttp。
葫芦咩
葫芦咩

引用来自“YJW_David”的评论

要是能把性能提升就好了

引用来自“黄者”的评论

感觉是因为路由支持正则的原因,gin、echo、iris快是快,但似乎都不支持正则。

引用来自“红白机”的评论

路由使用正则确实会比不用慢,至于慢多少也不好说。还有就是,我不想使用ORM之类的东西
慢是因为使用了go自带的net/http库,iris等使用的是fasthttp
明月惊鹊
明月惊鹊
挺不错的。
橙汁儿
橙汁儿
目前go最完善的框架了
anduo
anduo
我靠 改进了好多
青怪
青怪
学习go使用的第一个框架,支持下!希望越来越好!
oldfeel
oldfeel
qii
qii
模板语法太弱了,要是重写模板就好了
微笑的书生
微笑的书生
贺电!!
返回顶部
顶部