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进行了编辑。