烧瓶忘记POST上的路线

时间:2018-10-26 22:08:58

标签: python flask passenger wsgi shared-hosting

我正在尝试在(共享)WSGI服务器上运行一个非常简单的flask-application。当我在内置服务器上运行该代码时,它可以正常工作,但是如果我尝试将POST转到生产WSGI服务器上的URL,则会收到一个404, The requested URL was not found on the server错误。 仅在POST个请求中发生,GETPUT被按预期处理。

通过删除占位符tid,可以说服flask正确处理请求,但这显然不是适当的解决方案。

服务器正在运行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 :(得分:0)

您必须指定在add_url_rule中使用的方法:

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