Flask возвращает 405 Метод не разрешен, даже если указан POST - PullRequest
0 голосов
/ 27 марта 2020

Я получаю ошибку 405 Method Not Allowed при загрузке на мой маршрут upload_file. Я указал, что маршрут принимает методы GET и POST, поэтому я не уверен, почему он не работает.

@app.route('/upload', methods=["GET, POST"])
def upload_file():
    if request.method == 'GET':
        return render_template("home.html")
    elif request.method == 'POST':
        if 'file' not in request.file:
            return render_template("home.html")

        file = request.files['file']

        if file.filename == '':
            return render_template("home.html")

        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            converted_file = convert(file)
            return render_template("home.html", converted_file=converted_file, img_src=UPLOAD_FOLDER+filename)
<form  method="post" enctype="multipart/form-data" action="/upload" >
    <input type="file" name="file">
    <input type="submit" value="Upload">
</form>    

1 Ответ

1 голос
/ 27 марта 2020
@app.route('/upload', methods=["GET, POST"])

должно быть:

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

Вы дали список с одной строкой «GET, POST» вместо списка с двумя строками: «GET» и «POST».

PS: Как описано здесь: Не использовать run () в рабочей среде.

Не использовать run () в рабочих настройках. Он не предназначен для удовлетворения требований безопасности и производительности для производственного сервера. Вместо этого см. Рекомендации по развертыванию для сервера WSGI.

Пожалуйста, прочитайте Варианты развертывания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...