플라스크의 HTTP 상태 코드 201 반환
우리는 API 중 하나에 플라스크를 사용하고 있는데 HTTP 응답 201을 반환하는 방법을 아는 사람이 있는지 궁금합니다.
404와 같은 오류의 경우 다음을 호출할 수 있습니다.
from flask import abort
abort(404)
하지만 201년 동안은
LookupError: 201에 대한 예외 없음
문서에 이와 같은 예외를 만들어야 합니까?
응답을 사용하여 http 상태 코드를 반환할 수 있습니다.
> from flask import Response
> return Response("{'a':'b'}", status=201, mimetype='application/json')
당신은 여기서 그것에 대해 읽을 수 있습니다.
return render_template('page.html'), 201
할수있습니다
result = {'a': 'b'}
return result, 201
오류 코드와 함께 응답의 JSON 데이터를 반환하려는 경우 make_response API에 대한 자세한 내용은 여기와 여기에서 확인할 수 있습니다.
제안된 상태 코드가 부족하기 때문에 반품 명세서에 전송 상태 코드를 저장하고 있다면 다음과 같은 변수에 저장합니다.
notfound = 404
invalid = 403
ok = 200
및 사용
return xyz, notfound
시간이 지남에 따라 유형이 str이 아닌지 확인합니다. 제가 이 작은 문제에 직면했기 때문에 여기 또한 전 세계적으로 뒤따르는 상태 코드 목록입니다. http://www.w3.org/Protocols/HTTP/HTRESP.html
도움이 되길 바랍니다.
플라스크 코드에서 MIME 유형을 가능한 한 자주 지정하는 것이 좋습니다.
return html_page_str, 200, {'ContentType':'text/html'}
return json.dumps({'success':True}), 200, {'ContentType':'application/json'}
...기타
여기서 뤽의 코멘트를 뜯어내지만, 빈 대답을 되돌리자면, 예를 들면,201
가장 간단한 옵션은 경로에서 다음 리턴을 사용하는 것입니다.
return "", 201
예를 들어 다음과 같습니다.
@app.route('/database', methods=["PUT"])
def database():
update_database(request)
return "", 201
응답을 보낼 때 flask_api를 사용할 수도 있습니다.
from flask_api import status
@app.route('/your-api/')
def empty_view(self):
content = {'your content here'}
return content, status.HTTP_201_CREATED
http://www.flaskapi.org/api-guide/status-codes/ 에서 참조할 수 있습니다.
나의 경우, 나는 그것이 작동하도록 하기 위해 위의 것들을 결합해야 했습니다.
return Response(json.dumps({'Error': 'Error in payload'}),
status=422,
mimetype="application/json")
API가 생성되는 방식에 따라 일반적으로 201(생성)로 생성된 리소스를 반환합니다.예를 들어 사용자 계정을 만드는 경우 다음과 같은 작업을 수행합니다.
return {"data": {"username": "test","id":"fdsf345"}}, 201
사후 고정 번호는 반환된 상태 코드입니다.
또는 다음과 같은 메시지를 클라이언트에 보낼 수 있습니다.
return {"msg": "Created Successfully"}, 201
오류 404에 대해 할 수 있습니다.
def post():
#either pass or get error
post = Model.query.get_or_404()
return jsonify(post.to_json())
201 성공을 위하여
def new_post():
post = Model.from_json(request.json)
return jsonify(post.to_json()), 201, \
{'Location': url_for('api.get_post', id=post.id, _external=True)}
다음과 같이 데이터를 반환한 후 상태 코드를 추가하면 됩니다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world(): # put application's code here
return 'Hello World!',201
if __name__ == '__main__':
app.run()
이것은 기본적인 플라스크 프로젝트입니다.시작한 후에 우리가 요청할 때 그것을 찾을 수 있습니다.http://127.0.0.1:5000/
당신은 웹 브라우저 콘솔에서 상태 201을 얻을 것입니다.
따라서 API의 반환 201에 패키지를 사용하는 경우 다음과 같이 됩니다.
def bla(*args, **kwargs):
...
return data, 201
어디에data
dict, string과 같은 해시 가능/JsonSerialable 값이어야 합니다.
언급URL : https://stackoverflow.com/questions/7824101/return-http-status-code-201-in-flask
'programing' 카테고리의 다른 글
이 프로그램은 종을 울립니다! (0) | 2023.06.15 |
---|---|
각도 인터셉트카 제외 특정 URL (0) | 2023.06.15 |
16진수로 인코딩된 ASCII 문자열을 일반 ASCII로 변환하시겠습니까? (0) | 2023.06.15 |
레이블 문자 회전(SeaBorn) (0) | 2023.06.15 |
응용 프로그램이 실행 중인 경로를 유형 스크립트로 가져오려면 어떻게 해야 합니까? (0) | 2023.06.15 |