您的
/users路线缺少尾部斜杠,Werkzeug将该尾部斜杠解释为不匹配尾部斜杠的显式规则。添加尾部斜杠,如果URL没有URL,则Werkzeug将重定向,或者
strict_slashes=False在路由上设置,并且无论有没有斜杠,Werkzeug都会匹配规则。
@app.route('/users/')@app.route('/users/<path:path>')def users(path=None): return str(path)c = app.test_client()print(c.get('/users')) # 302 MOVED PERMANENTLY (to /users/)print(c.get('/users/')) # 200 OKprint(c.get('/users/test')) # 200 OK@app.route('/users', strict_slashes=False)@app.route('/users/<path:path>')def users(path=None): return str(path)c = app.test_client()print(c.get('/users')) # 200 OKprint(c.get('/users/')) # 200 OKprint(c.get('/users/test')) # 200 OK
您还可以设置
strict_slashes所有URL。
app.url_map.strict_slashes = False
但是,在大多数情况下,应避免禁用严格的斜杠。该文档解释了原因:
即使省略了斜杠,此行为也允许相对URL继续工作,这与Apache和其他服务器的工作方式一致。而且,URL将保持唯一,这有助于搜索引擎避免对同一页面进行两次索引。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)