ur3*_*r3k 2 python serialization flask jsonify
我正在使用 Flask 版本 2.3.2 和 FireO ORM 2.1.0
FireO 模型不直接兼容 Flask 的 jsonify。这意味着它们默认情况下不可序列化,需要在将它们传递给 jsonify 之前将其转换为字典。
前任:
users_dicts = [user.to_dict() for user in users]
return jsonify(users_dicts), 200
# or
return jsonify(user.to_dict()), 200
Run Code Online (Sandbox Code Playgroud)
所以我的想法是扩展 FireO 模型或 Flask,这样我就可以这样做:
jsonify(users), 200 # Users is a FireO QueryIterator
jsonify(user), 200 # User is a FireO model
Run Code Online (Sandbox Code Playgroud)
我认为如果您覆盖DefaultJSONProvider.dumps,该函数只会为顶级对象调用一次,因此任何委托/递归都必须手动完成。
我更轻松地为以下内容提供静态覆盖DefaultJSONProvider.default:
class ModelProvider(DefaultJSONProvider):
@staticmethod
def default(obj):
if isinstance(obj, Model):
return obj.to_dict()
else:
return DefaultJSONProvider.default(obj)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |