【发布时间】:2014-07-26 06:14:46
【问题描述】:
根据Flask.make_response 方法的 Flask 文档,允许从视图返回的唯一类型是 app.response_class、str、unicode、wsgi 函数或具有响应对象的元组的实例。以上。
我希望能够从视图返回我自己的模型和查询,并使用通用代码构建适当的响应、将对象序列化为可接受的格式、从查询构建集合、应用过滤条件等。连接它的最佳位置?
我考虑了以下可能性,但无法找到一种正确的方法。
- 子类化响应和设置 app.response_class
- 子类化 Flask 重新定义 Flask.make_response
- 将 app.route 包装到另一个装饰器中
- Flask.after_request
- ?
edit1:我已经有许多 API 具有我需要在视图中实现的行为,但我想避免到处重复。
edit2:我实际上正在构建一个 Flask 扩展,其中包含我的应用程序中使用的许多默认做法。虽然普通的装饰器肯定会起作用,但我真的需要更多的魔法。
【问题讨论】:
-
如果您正在研究烧瓶扩展,为什么不研究 flask-restless.readthedocs.org/en/latest 并看看它们如何处理序列化?
-
我已经做到了。 Flask-restless 自动创建视图并将装饰器应用于所有视图。我不会自动化视图,所以这对我不起作用。还是谢谢。