2016-12-31 100 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)