2016-12-31 86 views
0

“如何序列化sqlalchemy模型”有很多解决方案。其中许多改变,因为部件和零件被烧瓶改变。py-flask-jsontools如何序列化sqlalchemy模型或模型列表

jsonify a SQLAlchemy result set in Flask

我已经谈妥使用PY-烧瓶jsontools。制作了一个存储库的副本,并集成了来自各种分支的几个修复程序。原始作者似乎mia。

https://github.com/slippers/py-flask-jsontools

这里为SQLAlchemy的我提出探索序列化使用和不使用烧瓶上下文JSON测试。

https://github.com/slippers/py-flask-jsontools/blob/master/tests/sqlalchemy-test.py

?如何序列SQLAlchemy的模型JSON,而无需调用

json.dumps("some query object", cls=DynamicJSONEncoder) 

尤其是当有请求上下文和烧瓶知道什么串级使用。

+0

你的意思是没有每次都调用它?您是否尝试过在app的after_request中添加必要的内容? – PerunSS

+0

我的期望是,如果我只是返回炼金术对象,它会序列化为json – user2647293

回答

0

扩展JsonResponse以使用DynamicJSONEncoder调用转储。 JsonResponse对于不同的http响应代码和头文件有可选的参数。

class SqlAlchemyResponse(JsonResponse): 
    def preprocess_response_data(self, response): 
     return json.dumps(response, cls=DynamicJSONEncoder) 

@app.route('/person', methods=['GET']) 
def list_persons(): 
    rs = self.session.query(Person).all() 
    return SqlAlchemyResponse(rs)