Атрибут files
Атрибут files применяется к объекту запроса
request и возвращает словарь MultiDict,
содержащий все файлы, переданные в теле запроса.
Ключами словаря являются имена полей формы,
а значениями - объекты FileStorage.
Этот атрибут доступен только для запросов
с методом POST или PUT и типом содержимого
multipart/form-data.
Синтаксис
request.files
Пример
Давайте создадим простое приложение, которое принимает файл и выводит его имя:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
file = request.files['file']
return file.filename
return 'send file'
При отправке файла с именем 'abcde.txt'
результат выполнения кода будет следующим:
abcde.txt
Пример
Давайте проверим, был ли файл передан, и сохраним его на сервере:
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
if 'file' not in request.files:
return 'no file'
file = request.files['file']
if file.filename == '':
return 'empty filename'
file.save('uploads/' + file.filename)
return 'uploaded'
return 'send file'
Результат выполнения кода при успешной загрузке:
uploaded