0
먼저 요청 크기를 확인하는 래퍼 함수를 작성하려고합니다. 요청 크기가 예상보다 크면 특정 콘텐츠가 반환됩니다 클라이언트에게. 이전에 request.content_length
을 사용하려고 시도했지만 요청이 POST
요청 일 때 작동했지만 GET
요청에는 작동하지 않았습니다. 그렇게 할 수있는 방법이 있습니까?플라스크에서 GET 요청의 콘텐츠 길이를 얻는 방법
먼저 요청 크기를 확인하는 래퍼 함수를 작성하려고합니다. 요청 크기가 예상보다 크면 특정 콘텐츠가 반환됩니다 클라이언트에게. 이전에 request.content_length
을 사용하려고 시도했지만 요청이 POST
요청 일 때 작동했지만 GET
요청에는 작동하지 않았습니다. 그렇게 할 수있는 방법이 있습니까?플라스크에서 GET 요청의 콘텐츠 길이를 얻는 방법
Flask Request는 werkzeug 요청으로부터 상속합니다 : http://werkzeug.pocoo.org/docs/0.12/quickstart/#enter-request. 그래서 플라스크에 요청의 내용 길이는 헤더에 있습니다 flask.request.headers.get('Content-Length')
그래서 당신은 당신이 사용하는 파이썬, 플라스크 및 WERKZEUG의
import functools
def check_content_length_of_request_decorator(max_content_length):
def wrapper(fn):
@functools.wraps(fn)
def decorated_view(*args, **kwargs):
if int(flask.request.headers.get('Content-Length') or 0) > max_content_length:
return flask.abort(400, description='Too much content in request')
else:
return fn(*args, **kwargs)
return decorated_view
return wrapper
@app.route('/my_route', methods=['GET', 'POST'])
@check_content_length_of_request_decorator(1000)
def my_route():
return 'This request has a valid content length!'
어떤 버전과 같은 일을 할 수 있을까? GET 요청으로 데이터를 보낼 때 무엇을 사용하고 있습니까? – Aaron