Атрибут name
Атрибут name применяется к объекту
FileStorage, который возвращает
request.files при загрузке файла.
Атрибут хранит имя поля формы, через которое
был передан файл, в виде строки. Если файл
не был передан, значение равно None.
В отличие от атрибута filename, который
содержит оригинальное имя загруженного файла
на компьютере пользователя, атрибут name
отражает именно имя поля в HTML-форме,
например 'avatar' или 'document'.
Синтаксис
file_storage.name
Пример
Пусть у нас есть форма, которая отправляет файл
через поле с именем 'userfile'. Выведем
имя поля в консоль:
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['userfile']
print(file.name)
return 'ok'
Результат выполнения кода в консоли:
"userfile"
Пример
Давайте проверим, что вернёт атрибут name,
если поле с файлом отсутствует в запросе:
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
file = request.files.get('userfile')
if file is None:
return 'no file'
return file.name
Результат выполнения кода при пустом запросе:
"no file"
Пример
Давайте переберём все загруженные файлы и выведем имя поля для каждого из них:
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
res = []
for key in request.files:
file = request.files[key]
res.append(file.name)
return str(res)
Результат выполнения кода:
['userfile', 'avatar']
Смотрите также
-
класс
FileStorage,
который представляет загруженный файл -
атрибут
filename,
который хранит оригинальное имя файла -
метод
save,
который сохраняет файл на диск -
атрибут
content_type,
который возвращает MIME-тип файла