flask. Как перехватывать исключение RequestEntityTooLarge?
При загрузке файла можно установить ограничение на размер загружаемого файла. Для этого есть инструмент установки ограничения размера:
app.config['MAX_CONTENT_LENGTH'] = 16 #* 1024 * 1024
и отлов прерывания:
from werkzeug.exceptions import RequestEntityTooLarge
Например, приведенный ниже код работает и дает возможность обработать ситуацию.
from flask import Flask
from flask import render_template, request
from werkzeug.exceptions import RequestEntityTooLarge
app = Flask(__name__)
app.config['DEBUG'] = True
app.config['MAX_CONTENT_LENGTH'] = 16 #* 1024 * 1024
@app.route('/')
def upload():
return render_template("file_upload_form.html")
@app.route('/success', methods=['POST'])
def success():
if request.method == 'POST':
f_name = None
try:
# start request parsing
f = request.files['file']
f.save(f.filename)
f_name = f.filename
except RequestEntityTooLarge as e:
# we catch RequestEntityTooLarge exception
app.logger.info(e)
return render_template("success.html", name=f_name)
if __name__ == '__main__':
app.run(debug=True)
В случае же подключения модуля flask-form прерывание "заваливает" выполнение кода, несмотря на try. Не подскажете что я не так делаю?
Ответы (1 шт):
Автор решения: Vasyl Kolomiets
→ Ссылка
Простите, нашел ответ:
@app.errorhandler(413)
def request_entity_too_large(error):
return 'File Too Large', 413