无法在 add_url_rule 中设置方法
Can't set methods in add_url_rule
我正在尝试将我的 Flask 服务器包装在 class 中,以便更好地适应我的应用程序其余部分的结构。
我有以下代码:
class HTTPServer(object):
def __init__(self):
self.app = Flask(__name__)
self.app.add_url_rule('/', 'index', self.hello_world, methods=['POST'])
self.app.run(port=5050, use_reloader=False)
def hello_world(self, data):
print "Hello, World: {}".format(data)
但是,如果我向 localhost:5050/index
发送 POST
请求,我会收到 404 错误。
Flask 日志显示如下:
127.0.0.1 - - [30/Aug/2019 11:17:52] "POST /index HTTP/1.1" 404 -
如果我在 methods
中将 ['POST']
更改为 ['GET']
并发送 GET
请求,也会发生同样的情况。
但是,如果我从 add_url_rule()
中完全删除 methods
参数,我可以发送 GET
请求并且它们会得到适当的处理。
我没看懂add_url_rule
的endpoint
参数。它不是客户端看到的端点,而是端点的内部名称。正确的方法调用是:
self.app.add_url_rule('/index', 'hello_world', self.hello_world, methods=['POST'])
我正在尝试将我的 Flask 服务器包装在 class 中,以便更好地适应我的应用程序其余部分的结构。
我有以下代码:
class HTTPServer(object):
def __init__(self):
self.app = Flask(__name__)
self.app.add_url_rule('/', 'index', self.hello_world, methods=['POST'])
self.app.run(port=5050, use_reloader=False)
def hello_world(self, data):
print "Hello, World: {}".format(data)
但是,如果我向 localhost:5050/index
发送 POST
请求,我会收到 404 错误。
Flask 日志显示如下:
127.0.0.1 - - [30/Aug/2019 11:17:52] "POST /index HTTP/1.1" 404 -
如果我在 methods
中将 ['POST']
更改为 ['GET']
并发送 GET
请求,也会发生同样的情况。
但是,如果我从 add_url_rule()
中完全删除 methods
参数,我可以发送 GET
请求并且它们会得到适当的处理。
我没看懂add_url_rule
的endpoint
参数。它不是客户端看到的端点,而是端点的内部名称。正确的方法调用是:
self.app.add_url_rule('/index', 'hello_world', self.hello_world, methods=['POST'])