📸 Как отправить картинку в Flask: простая инструкция для начинающих

Чтобы отправить картинку в Flask, вам нужно использовать модуль Flask и модуль werkzeug. Вот простой пример кода:


from flask import Flask, request, jsonify
from werkzeug.utils import secure_filename

app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload_file():
    if 'image' not in request.files:
        return jsonify({'error': 'No image found'})
    
    file = request.files['image']
    if file.filename == '':
        return jsonify({'error': 'No image selected'})
    
    if file:
        filename = secure_filename(file.filename)
        file.save(filename)
        return jsonify({'success': 'Image uploaded'})
    else:
        return jsonify({'error': 'Failed to upload image'})

if __name__ == '__main__':
    app.run()
    

В этом примере мы создаем маршрут "/upload" и ожидаем POST-запрос с изображением, которое будет отправлено в теле запроса с ключом 'image'. Проверяем, есть ли в запросе файл с изображением, и сохраняем его при условии, что имя файла не пустое. Если все прошло успешно, возвращаем сообщение об успешной загрузке изображения, в противном случае возвращаем сообщение об ошибке.

Детальный ответ

Как отправить картинку в Flask

Если вы хотите отправить картинку в приложении Flask, есть несколько шагов, которые нужно выполнить. Давайте разберемся в этом подробнее.

Шаг 1: Создание HTML-формы

Сначала вам потребуется создать HTML-форму, в которой пользователь сможет выбрать и отправить картинку. Вот пример:


<form method="POST" enctype="multipart/form-data" action="/upload">
    <input type="file" name="image">
    <input type="submit" value="Отправить">
</form>
    

Обратите внимание на атрибуты enctype="multipart/form-data" и method="POST". Эти атрибуты позволяют отправлять файлы через POST-запросы.

Шаг 2: Настройка маршрута загрузки

Теперь вам нужно настроить маршрут в вашем Flask-приложении, который будет обрабатывать загруженную картинку. Вот пример:


from flask import Flask, request, render_template

app = Flask(__name__)

@app.route("/upload", methods=["POST"])
def upload():
    if "image" in request.files:
        image = request.files["image"]
        # Обрабатывайте картинку здесь
        return "Картинка успешно загружена"
    return "Ошибка загрузки"
    

В этом примере мы определяем маршрут /upload с методом POST. Если в запросе есть файл с именем image, мы сохраняем его в переменную image. Вы можете добавить свой собственный код для обработки загруженной картинки.

Шаг 3: Отображение результата

Если вы хотите отобразить пользователю результат загрузки картинки, вы можете использовать шаблон Flask. Вот пример:


@app.route("/", methods=["GET"])
def index():
    return render_template("index.html")

@app.route("/upload", methods=["POST"])
def upload():
    if "image" in request.files:
        image = request.files["image"]
        # Обрабатывайте картинку здесь
        return render_template("result.html", message="Картинка успешно загружена")
    return render_template("result.html", message="Ошибка загрузки")
    

В этом примере мы определяем маршрут "/" для отображения основной страницы, где пользователь может выбрать файл для загрузки. Мы также определяем маршрут "/upload" для обработки загрузки. После обработки мы используем шаблон result.html, чтобы отобразить сообщение о результате.

Шаг 4: Создание шаблонов

Чтобы правильно отображать страницы в Flask, вам потребуются шаблоны. Вот примеры:

Шаблон index.html:


<html>
<head>
    <title>Загрузка картинки</title>
</head>
<body>
    <h1>Загрузка картинки</h1>
    <form method="POST" enctype="multipart/form-data" action="/upload">
        <input type="file" name="image">
        <input type="submit" value="Отправить">
    </form>
</body>
</html>
    

Шаблон result.html:


<html>
<head>
    <title>Результат загрузки</title>
</head>
<body>
    <h1>Результат загрузки</h1>
    <p>{{ message }}</p>
</body>
</html>
    

В этих шаблонах мы используем переменную {{ message }}, чтобы отобразить соответствующее сообщение о результате.

Заключение

Теперь вы знаете, как отправить картинку в Flask. Следуя этим шагам, вы сможете создать функциональность загрузки картинок в своем Flask-приложении. Удачи!

Видео по теме

Flask #17: Загрузка файлов на сервер и сохранение в БД

КАК ПОКАЗАТЬ КАРТИНКУ? ► Веб-сервисы для Дата Саентиста #12

Python Flask Upload and display image

Похожие статьи:

📸 Как отправить картинку в Flask: простая инструкция для начинающих