Колба забывает маршруты на пост - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь запустить очень простое колб-приложение на (общем) WSGI-сервере.Код работает нормально, когда я запускаю его со встроенным сервером, но если я пытаюсь POST к URL-адресу на рабочем сервере WSGI, я получаю ошибку 404, The requested URL was not found on the server.Это происходит только для POST запросов, GET и PUT обрабатываются должным образом.

Удаляя заполнитель tid, можно убедить колбу в правильной обработке запроса, но, очевидно, это не так.правильное решение.

На сервере работает Phusion Passenger, версия фляги - 1.0.2.Поскольку это общий сервер, у меня больше нет доступа к конфигурации сервера.

Что может привести к тому, что колба забудет о маршрутах на WSGI-сервере?

Минимальный пример, воспроизводящий поведение(только на сервере, конечно) можно увидеть ниже:

from flask import Flask
from flask.views import MethodView


app = Flask(__name__)

class API(MethodView):
    def get(self, tid=0):
        return "Test"
    def put(self, tid=0):
        return "Test"
    def post(self, tid=0):
        return "Test"

app.add_url_rule("/test/<int:tid>", view_func=API.as_view('api'))

1 Ответ

0 голосов
/ 27 октября 2018

Вы должны указать методы, которые вы используете в add_url_rule:

app.add_url_rule("/test/<int:tid>", view_func=API.as_view('api'), methods=['GET', 'PUT', 'POST'])
...