我正在嘗試用 Flask 開發一個 api。我希望我的 api 回傳 json 檔案。但是,我回傳的值是一個元組,因為它包含 json 檔案和狀態碼。我需要以不同的方式顯示狀態碼嗎?感謝您的幫助。
def create(name, age):
return {"name": name,"age": age},{"Status Code": 200}
@app.route("/createaccount/", methods=["POST"])
def CreateAcc():
account_info = json.loads(request.data)
data_set = create(name="Jack", age=23)
json_dump = json.dumps(data_set)
return json_dump
uj5u.com熱心網友回復:
您可以直接在 http 回應中回傳狀態碼。如果您需要將結果代碼放在 http 回應正文中,您可以執行以下操作:
from flask import Flask
import json
app = Flask(__name__)
def create(name, age):
return {"name": name,"age": age},{"Status Code": 200}
@app.route('/createaccount/', methods=['POST'])
def get_request():
return json.dumps(create(name="Jack", age=23)), 201
if __name__ == "__main__":
app.run(port=5000, debug=True)
uj5u.com熱心網友回復:
return 陳述句會在第一個回傳值中自動將字典 json 化,因此您可以在下面執行
def create(name, age):
return {"name": name, "age": age}
@app.route("/createaccount/", methods=["POST"])
def CreateAcc():
data = create(name="Jack", age=23)
return data, 200
uj5u.com熱心網友回復:
Flask 中有這個jsonify功能。
將資料序列化為 JSON,并使用 application/json mimetype 將其包裝在 Response 中。
檔案中的示例:
from flask import jsonify
@app.route("/users/me")
def get_current_user():
return jsonify(
username=g.user.username,
email=g.user.email,
id=g.user.id,
)
來源:https ://flask.palletsprojects.com/en/2.1.x/api/#flask.json.jsonify
如果要指定狀態碼,例如:
@app.route("/users/me")
def get_current_user():
return jsonify(
username=g.user.username,
email=g.user.email,
id=g.user.id,
), 200
uj5u.com熱心網友回復:
你可以這樣做:
@app.route("/createaccount/", methods=["POST"])
def CreateAcc():
if request.method == 'POST':
try:
account_info = json.loads(request.data)
data_set = create(name="Jack", age=23)
json_dump = json.dumps(data_set)
return jsonify({"status": "success",
"message": "Successfully created account",
"data": json_dump}), 200
except Exception as error:
return jsonify({"status": "error",
"message": "bad request"}), 400
因此您可以回傳成功和失敗的錯誤狀態代碼。
200或者400是狀態代碼,您可以對其他狀態代碼執行此操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/476362.html
