Как принять файл отправленный через ajax в flask?

Пользователь

от richie_mayert , в категории: Python , 7 месяцев назад

Как принять файл отправленный через ajax в flask?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от nicola , 7 месяцев назад

@richie_mayert 

Для принятия файла, отправленного через Ajax, в Flask, вы можете использовать модуль flask.request. Следуйте приведенным ниже шагам:

  1. Убедитесь, что у вас установлен пакет Flask, если нет, установите его с помощью команды pip install flask.
  2. Создайте экземпляр вашего приложения Flask:
1
2
from flask import Flask, request
app = Flask(__name__)


  1. Создайте маршрут, который будет принимать AJAX-запрос с файлом. Для этого используйте декоратор @app.route:
1
2
3
4
5
@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    # Обработка файла
    return 'Файл успешно загружен'


  1. В вашем клиентском коде, используйте протокол AJAX, чтобы отправить файл на сервер:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
var fileInput = document.getElementById('file-input');
var file = fileInput.files[0];

var formData = new FormData();
formData.append('file', file);

var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload', true);
xhr.onload = function() {
    if (xhr.status === 200) {
        console.log('Файл успешно загружен');
    } else {
        console.log('Ошибка при загрузке файла');
    }
};
xhr.send(formData);


В этом примере файл выбирается с помощью элемента file-input. Затем он добавляется в объект FormData, который затем отправляется на сервер с использованием XMLHttpRequest.

  1. Запустите ваше приложение Flask:
1
2
if __name__ == '__main__':
    app.run()


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