Загрузка файлов — типичная задача в веб-приложениях. Позаботиться о загрузке файлов в Flask очень просто, все, что нам нужно, это иметь HTML-форму с шифрованием, установленным на информацию о составных частях/формах, чтобы опубликовать файл в URL-адресе. Сценарий flask на стороне сервера извлекает файл из объекта запроса, используя объект request.files[]. При эффективной загрузке файла он сохраняется в идеальном месте на сервере.
Установите Flask, написав в терминале команду:
pip install flask
Поэтапная реализация
Шаг 1: Должна быть создана новая папка «загрузка файлов». Создайте папки «templates» и «main.py» в этой папке, в которых будут храниться наши HTML-файлы и которые будут служить местом для нашего кода Python.
Шаг 2: Для внешнего интерфейса мы должны сначала разработать HTML-файл, в котором пользователь может выбрать файл и загрузить его, нажав кнопки загрузки. Пользователь нажмет кнопку отправки после выбора файла на своем локальном компьютере, чтобы передать его на сервер.
Index.html
HTML
<
html
>
<
head
>
<
title
>upload the file : GFG</
title
>
</
head
>
<
body
>
<
form
action
=
"/success"
method
=
"post"
enctype
=
"multipart/form-data"
>
<
input
type
=
"file"
name
=
"file"
/>
<
input
type
=
"submit"
value
=
"Upload"
>
</
form
>
</
body
>
</
html
>
Шаг 3: Мы должны сделать еще один файл HTML только для подтверждения. Для этого создайте файл в папке шаблонов с именем «Acknowledgement.html». Это сработает только в том случае, если загрузка файла прошла гладко. Здесь пользователь получит подтверждение.
Acknowledgement.html
HTML
<
html
>
<
head
>
<
title
>success</
title
>
</
head
>
<
body
>
<
p
>File uploaded successfully</
p
>
<
p
>File Name: {{name}}</
p
>
</
body
>
</
html
>
Шаг 4: Теперь внутри main.py напишите следующие коды. Имя целевого файла можно получить с помощью следующего кода, а затем мы сохраним загруженный файл в корневой каталог.
main.py
Python3
from
distutils.log
import
debug
from
fileinput
import
filename
from
flask
import
*
app
=
Flask(__name__)
@app
.route(
'/'
)
def
main():
return
render_template(
"index.html"
)
@app
.route(
'/success'
, methods
=
[
'POST'
])
def
success():
if
request.method
=
=
'POST'
:
f
=
request.files[
'file'
]
f.save(f.filename)
return
render_template(
"Acknowledgement.html"
, name
=
f.filename)
if
__name__
=
=
'__main__'
:
app.run(debug
=
True
)
Выход:
Запустите следующую команду в своем терминале.
python main.py
Шаг 5: Теперь, чтобы проверить, правильно ли он работает или нет, перейдите в папку, где находится » main.py «. Проверьте в этой папке, вы найдете там файлы.
Структура файла