为什么Python-Eve不会覆盖Flask JSON编码器

时间:2019-01-18 09:30:49

标签: python flask eve

初始化Eve时,您可以指定自定义的json编码器,就像文档here中指定的那样,您可以进行如下操作:

from eve.io.base import BaseJSONEncoder
    class CustomJSONEncoder(BaseJSONEncoder):
        ...   
app = Eve(settings=settings, json_encoder=CustomJSONEncoder)

我期望的是,内部结果是:

flask.json_encoder == CustomJSONEncoder

但是我在flaskapp Eve code中发现的是:

self.data.json_encoder_class = CustomJSONEncoder

,稍后可以通过app.data.json_encoder_class访问。这导致如果您使用依赖于编码器的任何flask附加组件,您将没有期望的自定义​​编码。

直接的解决方案可能是:

app = Eve(settings=settings, json_encoder=CustomJSONEncoder)
app.json_encoder = CustomJSONEncoder

但我不知道:

  • 为什么夏娃本身不这样做?
  • 有什么理由避免更改Flask的默认JSON编码器?
  • 夏娃会做出“ data.json_encoder_class以外的东西吗?
  • 是否应记录在案?

0 个答案:

没有答案