Go 应用框架 beego 1.7.0,新增改进功能-阿里云开发者社区

开发者社区> 晚来风急> 正文

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

简介:
+关注继续查看

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")
}

image

  1. session增加Log,一旦错误发生可以记录日志. #1833
  2. logs包添加两个public函数,EnableFuncCallDepth和SetLogFuncCallDepth, 用来设置函数的调用层级. #1837
  3. 支持go run运行beego的项目代码 #1840
  4. 添加ExecuteTemplate函数,这样用户就可以通过这种方式访问template,而不是直接访问map,因为map有并发读写问题 #1848
  5. ORM 字段支持time类型 #1856
  6. ORM One接口只获取一条 #1874
  7. ORM支持json jsonb类型 #1875
  8. ORM默认使用text类型 #1879
  9. session配置三个配置,EnableSidInHttpHeader EnableSidInUrlQuery SessionNameInHttpHeader,
    允许用户可以在http头和URL中带sid #1897
  10. 自动化路由改进生成的文件名,之前太长了 #1924
  11. 支持复杂的模板引擎. 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
  1. session引擎支持ssdb #1953
  2. RenderForm支持输出required #1993
  3. 让打印的beego日志更加美观 #1997
    image
  4. ORM支持struct中带有time.Time指针 #2006
  5. Controller中增加 TplPrefix 这样就可以在baseController制定读取模板的前缀目录 #2030
  6. jsonb函数中增加js函数的判断,避免函数不存在时候出错. #2045
  7. ORM增加InsertOrUpdate函数 #2053
  8. Filter函数增加重置参数的参数. 因为beego.InsertFilter("*", beego.BeforeStatic, RedirectHTTP)
    的时候,参数会赋值给:splat,从而影响后续如果路由里面也有想用的路由,

那么就会引起冲突,因此增加这样的函数以方便用户重置。 #2085

  1. session包配置采用对象初始化,而抛弃传递json的方式. 如果独立使用session包的可能会引起兼容性问题#2096
  2. 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

文章转载自 开源中国社区[http://www.oschina.net]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
4、libgdx应用框架
(原文:http://www.libgdx.cn/topic/29/4-libgdx%E5%BA%94%E7%94%A8%E6%A1%86%E6%9E%B6) 模块 作为核心,libgdx提供了六个接口与操作系统进行交互,针对每个操作系统的backend实现这些接口。
847 0
(三):C++分布式实时应用框架——系统管理模块
C++分布式实时应用框架——系统管理模块     上篇:(二): 基于ZeroMQ的实时通讯平台   版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!     一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个”封闭“的系统。
1222 0
(一):C++分布式实时应用框架----整体介绍
C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经同意转载等行为保留法律追究的权利!     在现今软件系统纷纷“云化”的浪潮下,各种支持“云化”的框架、工具层出不穷,但这些现成的工具大多基于JAVA,go等语言,且应用场景均为非实时系统。
1253 0
Android应用框架之BroadcastReceiver
广播机制是Android系统中的一种消息传播机制,通过观察者模式实现了消息发送者与消息接收者之间的解耦。BroadcastReceiver的使用方式有两种,一种是静态注册,即在Manifest文件中注册,然后在需要发送广播时调用context.sendBroadcast(intent);;第二种是动态注册。BroadcastReceiver的使用不是本文的重点,本文将着重讲解
1205 0
【HaaS成功案例】基于HaaS开发框架的智能农业物联网大棚系统
【HaaS成功案例】基于HaaS开发框架的智能农业物联网大棚系统
139 0
微软证实新版Silverlight将具备离线应用功能
据国外媒体报道,微软开发者部门总经理约翰·凯思(John Case)周一证实,微软网页浏览器插件Silverlight不久后将具备离线(offline)应用功能。简而言之,微软Silverlight是用 于播放媒体文件和显示交互式网络应用程序的网页浏览器插件,其主要竞争产品为Adobe的Flash播放器。
592 0
Framework7 – 赞!功能齐全的 iOS7 App 前端框架
  Framework7 是一个功能很全的 HTML 框架,用来构建 iOS7 应用程序。 Framework7 允许您灵活搭建列表视图(表视图) 。你可以让他们作为导航菜单,你可以在列表里面使用图标,输入框以及任何元素,甚至使它们嵌套。
738 0
基于对象存储 OSS 的智能数据分析处理框架和功能
今年参加了 2019 全球闪存峰会(Flash Memory World),分享了“基于云存储的智能数据分析处理架构”,重点介绍在对象存储 OSS 之上的数据处理功能,现整理相关内容和大家探讨。
2129 0
+关注
9380
文章
243
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载