我正在测试我的酒瓶应用程序。正在测试的代码如下:
@app.route("/my_endpoint/", methods=["GET"])
def say_hello():
"""
Greets the user.
"""
name = request.args.get("name")
return f"Hello {name}"
测试结果如下:
class TestFlaskApp:
def test_my_endpoint(self):
"""
Tests that my endpoint returns the result as plain text.
:return:
"""
client = app.test_client()
response = client.get("/my_endpoint?name=Peter")
assert response.status_code == status.HTTP_200_OK
assert response.data.decode() == "Hello Peter"
错误是:
预期:200实际:308
因此,我得到的不是"OK“(200),而是”永久重定向“(308)
发布于 2021-04-28 11:19:50
Flask
使用werkzeug.routing.Rule
(启用strict_slashes
作为缺省值),访问不带尾斜杠的分支URL将重定向到附加斜杠的strict_slashes
。这会引起308 (永久重定向)的响应。
因此,您的请求路径必须与路由路径完全匹配。
如果您想支持这两条路由:
/my_endpoint
/my_endpoint/
只需使用app.route设置strict_slashes=False
,如下所示:
@app.route('/my_endpoint', methods = ['POST'], strict_slashes=False)
def view_func():
pass
https://stackoverflow.com/questions/66612823
复制相似问题