2016-12-31 3 views
0

「どのようにsqlalchemyモデルをシリアライズするか」には多くの解決策があります。フラスコによって部品や部品が変更されるとその多くが変化します。py-flask-jsontools sqlalchemyモデルまたはモデルのリストをシリアル化する方法

jsonify a SQLAlchemy result set in Flask

私はPY-フラスコ-jsontoolsを使用して落ち着いてきました。リポジトリのコピーを作成し、さまざまなフォークからいくつかの修正を統合しました。元の著者はミアのようです。ここ

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

私はフラスココンテキストととせずにJSONにシリアライズ探索するために作られたSQLAlchemyのためのテストです。

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

?どのようにそこに要求コンテキストで、フラスコは、シリアライザクラスを使用することを知っている場合は特に

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

を呼び出すことなく、私はJSONにSQLAlchemyのモデルをシリアライズ行います。

+0

毎回電話しないでください。あなたはアプリのafter_requestで必要なものを追加しようとしましたか? – PerunSS

+0

私は単に錬金術オブジェクトを返すだけで、jsonにシリアライズする – user2647293

答えて

0

DynamicJSonencoderでダンプを呼び出すようにJsonResponseを拡張します。 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) 
関連する問題