Загрузка файлов на сервер с Python и Flask

Загрузка файлов на сервер с Python и Flask

Загрузка файлов на сервер с Python и Flask

Здравствуйте. Как известно, загрузка файлов является обычной задачей в веб-приложениях. Для этой цели используются HTML-формы с шифрованием multipart/form-data для передачи данных на сервер. В данной статье мы рассмотрим, как реализовать загрузку файлов посредством фреймворка Flask и языка Python.
Итак, приступим.

Для начала, необходимо установить Flask с помощью терминальной команды:



pip install Flask





Шаг 1:

Создайте новую папку под названием Загрузка файлов. Внутри создайте файл main.py , а также папки templates и uploads.

Шаг 2:

В папке templates создайте простую HTML-страницу index.html, позволяющую выбирать несколько файлов и отправлять их для загрузки на сервер. HTML-форма содержит элементы для выбора и загрузки файлов методом POST. Атрибут enctype определяет, как данные формы будут закодированы при отправке на сервер. Поскольку мы загружаем файлы, установим значение атрибута enctype в multipart/form-data.

<!-- index.html -->



<body>



<form action="/upload" method="post" enctype="multipart/form-data">

    <label for="file">Выберите файлы для загрузки:</label>

    <input type="file" id="file" name="file" multiple>

    <input type="submit" value="Загрузить">

</form>



</body>





Шаг 3:

В файле main.py импортируйте модули Flask и создайте маршруты с помощью декоратора @app.route . Получите список файлов, загруженных с веб-страницы, и сохраните их один за другим в корневой каталог с использованием цикла и функции file.save().



# main.py



from flask import Flask, render_template, request



app = Flask(__name__)



UPLOAD_FOLDER = 'uploads'

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER



@app.route('/')

def show_main_page():

    return render_template('index.html')



@app.route('/upload', methods=['POST'])

def handle_file_upload():

    if request.method == 'POST':

        uploaded_files = request.files.getlist("file")

        for uploaded_file in uploaded_files:

            filename = uploaded_file.filename

            file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)

            uploaded_file.save(file_path)

        return "Файлы успешно загружены в папку 'uploads'!"



if __name__ == '__main__':

    app.run(debug=True)



Далее, открываем терминал и переходим к папке с файлом main.py. После чего вводим:



>>>python main.py



# вывод

https://127.x.x.x



Переходим по указанному адресу в браузере и нажимаем кнопку загрузить, выбрав соответствующий файл.
После чего файл будет загружен в папку uploads. Таким образом, мы рассмотрели способ загрузки
файлов на сайт, с помощью языка Python и библиотеки Flask. А если вам необходимо
углубиться в изучение Python с нуля до экспертного уровня, я рекомендую пройти видеокурс Программирование на Python с Нуля до Гуру.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий