2017-08-01 7 views
0

最近、単純なルート経由でデータを提供するプロジェクトでFlaskを使用し始めました。これまでのところ、データとその他の情報を含むjsonファイルを返します。 Flaskアプリケーションを実行すると、このリクエストのステータスコードが端末に表示されます。私は最終的なjsonファイルの一部としてステータスコードを返したいと思います。ターミナルで見るのと同じコードをキャッチすることは可能ですか?Flaskでhtttp-statusコードを取得する

いくつかの簡単なこの

from flask import Flask 
from flask import jsonify 
app = Flask(__name__) 

@app.route('/test/<int1>/<int2>/') 
def test(int1,int2): 

    int_sum = int1 + int2 
    return jsonify({"result":int_sum}) 

if __name__ == '__main__': 
    app.run(port=8082) 

ように見えるかもしれませんし、端末に私が取得:

@app.route('/test') 
def test(): 
    status_code = 200 
    return jsonify({'name': 'Nabin Khadka'}, status_code # Notice second element of the return tuple 

この方法:

enter image description here

答えて

2

レスポンスコードが設定されている場合(成功応答ではデフォルトで200)、レスポンスが送信される前にこの値をキャッチすることはできません。しかし、あなたがあなたの操作の結果を知っていれば、あなたはそれを最終的なjsonに置くことができます。あなたがSTATUS_CODEを見つけることができますし、すべてのHTTPデータプラスあなたが必要とJSONを参照されたレスポンス・オブジェクトに、要求ライブラリーから、このエンドポイントにアクセスする場合ところで

@app.route('/test/<int1>/<int2>/') 
def test(int1, int2): 

    int_sum = int1 + int2 

    response_data = { 
     "result": int_sum, 
     "sucess": True, 
     "status_code": 200 
    } 
    # make sure the status_code on your json and on the return match. 
    return jsonify(response_data), 200 # <- the status_code displayed code on console 

のPythonライブラリの例を依頼

import requests 

req = requests.get('your.domain/test/3/3') 

print req.url # your.domain/test/3/3 
print req.status_code # 200 
print req.json() # {u'result': 6, u'status_code: 200, u'success': True} 
1

あなたは次のようにHTTPステータスコードを送信することができますクライアントに返すステータスコードを制御することができます(通常は

関連する問題