Falcon 0.2.0的更改日志

正在中断更改

  • 已删除不推荐使用的util.misc.percent u escape和util.misc.percent u unescape函数。请改用util.uri模块中的函数。

  • 已删除不推荐使用的函数api.set default u route。请改用水槽。

  • httprangenotsatisfable不再接受媒体类型参数。

  • 当使用逗号分隔的列表约定时,req.get u param u as u list(…)将不再为空元素插入使用none类型的占位符。例如,以前的查询字符串“foo=1,,3”将导致 [“1”,无,“3”] ,它现在将导致 [“1”,“3”] .

新的和改进的

  • 自0.1以来,我们已经添加了适当的RTD文档,以使每个人更容易开始使用框架。随着时间的推移,我们将继续添加内容,我们将非常感谢您的帮助!

  • Falcon现在支持“wsgi.filewrapper”。您可以将任何类似对象的文件分配给resp.stream,Falcon将使用“wsgi.filewrapper”更有效地将数据传输到wsgi服务器。

  • 添加了对自动解析包含“application/x-www-form-urlencoded”内容的请求的支持。表单域现在被折叠成req.params。

  • 现在支持自定义请求和响应类。在实例化falcon.api时,可以指定自定义类型。

  • 一个新的中间件特性被添加到框架中。中间件不支持全局挂钩,我们鼓励每个人尽快迁移。

  • 请求中添加了通用dict属性。中间件、钩子和响应程序现在可以使用req.context来共享关于当前请求的上下文信息。

  • 在falcon.api中添加了一个新方法append u header,允许使用逗号分隔为同一个头设置多个值。请注意,这对于设置cookie不起作用,但我们计划在下一个版本(0.3)中解决这个问题。

  • 一个新的“resource”属性被添加到钩子中。不接受这个新属性的旧钩子将被填充,以便它们继续工作。虽然我们已经努力将性能影响降到最低,但是我们建议迁移到新的函数签名,以避免任何开销。

  • 除了JSON之外,错误响应主体现在还支持XML。此外,对httperror序列化代码进行了重构,以便于实现自定义错误序列化程序。

  • 在falcon.api中添加了一个新方法“set u error u serializer”。如果需要支持自定义媒体类型,可以使用此方法重写Falcon的默认httpError序列化程序。

  • Falcon的测试基类testing.testbase进行了改进,以便于PY3K测试。值得注意的是,testbase.simute请求现在需要一个额外的“decode”kwarg,可以用来自动解码字节字符串pep-3333响应体。

  • 向响应类添加了一个“add u link”方法。应用程序可以使用此方法向响应添加一个或多个链接头值。

  • 添加了两个新属性req.host和req.subdomain,以便更容易获得请求中的主机名信息。

  • 允许在查询字符串参数中使用更广泛的字符。

  • 已重构内部API以允许覆盖默认路由机制。下一个版本(0.3)计划进一步模块化。

  • 更改了req.get u参数,以便无论是在查询字符串中使用HTML表单样式(其中每个元素在单独的“key=val”字段中列出)还是在更紧凑的API样式(其中每个元素以逗号分隔并分配给单个参数in)中指定了列表,它的行为都相同。tance,如“key=val1,val2,val3”中所示)

  • 在响应类中添加了一个方便的方法set u stream(…)来同时设置流及其长度,这将有助于人们不要忘记设置这两种方法(并在沿途节省一些击键)。

  • 添加了几个新的错误类,包括httprequestentitytoolarge、httpinvalidparam、httpmissingparam、httpinvalidheader和httpmissingheader。

  • 现在完全支持python 3.4。

  • 各种细微的性能改进

固定的

  • 确保100%的测试覆盖率,并修复过程中发现的任何错误。

  • 修复无法识别范围标题中的“bytes=”前缀的问题。

  • 根据RFC7231,使httpnotfound和httpmethody不能完全兼容。

  • 修正了“选项响应器”的默认值,导致了cython类型错误。

  • 在python 2下,uri模板字符串现在可以是unicode类型。

  • 当wsgi环境中没有脚本名称时,返回req.app属性的空字符串。

  • 全局“after”挂钩现在将被执行,即使响应程序引发错误。

  • 修复了与测试有关的几个小问题。创建环境(…)

  • 解决wsgiref要求,如果客户端没有提交内容长度头,wsgiref将在wsgi环境中将该头的值设置为空字符串。

  • 解决了导致多个源文件无法进行网络化的问题。

  • 为了清晰和正确,已对docstrings进行了编辑。