Python烧瓶错误“;缺少必需的位置参数“;(即使有供应)

Python烧瓶错误“;缺少必需的位置参数“;(即使有供应),python,flask,Python,Flask,我有一个烧瓶索引路由,它重定向到另一个路由,如下所示: @app.route('/',方法=['GET','POST']) def index(): 如果request.method==“POST”: filepath=“some/path/” top_1=“某物” top_2=“somethingelse” top_3=“somethingelse” 返回重定向(url\u for('display\u preds',filepath=filepath, 顶部1=顶部1,顶部2=顶部2,顶部3

我有一个烧瓶索引路由,它重定向到另一个路由,如下所示:

@app.route('/',方法=['GET','POST'])
def index():
如果request.method==“POST”:
filepath=“some/path/”
top_1=“某物”
top_2=“somethingelse”
top_3=“somethingelse”
返回重定向(url\u for('display\u preds',filepath=filepath,
顶部1=顶部1,顶部2=顶部2,顶部3=顶部3),
代码=307)
“display_preds”如下所示:

@app.route('/display_preds',methods=['GET','POST'])
def显示preds(文件路径,顶部1,顶部2,顶部3):
如果request.method==“POST”:
返回渲染模板(“prediction.html”)
最后,在“prediction.html”页面中,我有以下内容:


测试页
这只是一个测试

{{top_1}}


{{top_2}}


{{top_3}}

执行此操作后,我可以看到redirect()具有“filepath”、“top_1”等值,因为我看到它试图发布如下内容:

address/display\u preds?文件路径=%2some%2文件%2path&top\u 2=something&top\u 1=somethingelse&top\u 3=somethingelse

为什么会出现这样的错误:

TypeError:display\u preds()缺少4个必需的位置参数:“filepath”、“top\u 1”、“top\u 2”和“top\u 3”

更新:

我尝试将路由更改为
@app.route('/display\u preds////',methods=['GET','POST'])
,但这只会将错误更改为:

werkzeug.routing.BuildError: Could not build url for endpoint 'display_preds/filepath/top_1/top_2/top_3' with values ['filepath', 'top_1', 'top_2', 'top_3']. Did you mean 'display_preds' instead?

您在哪里为
渲染_模板提供值

您可以使用上下文dict,如

context={“filepath”:filepath,“top_1”:top_1,“top_2”:top_2,“top_3”:top_3}
render_模板(“prediction.html”,context=context)

或者直接在
渲染模板中使用:

render_模板(“prediction.html”,filepath=filepath,top_1=top_1,top_2=top_2,top_3=top 3)

更新:您的重定向正在使用对新url的GET请求,但在您的端点中,您没有使用
request.args.GET(“top_1”)
检索参数


谢谢Kenjin的建议!我实现了这一更改,但仍然得到了与最初完全相同的错误:/@DavidSkarbrevik代码中的问题是,您的
重定向
正在使用一个get来访问新页面。但是在新页面中,您没有使用
request.args.get(“top_1”)
请求中检索数据,我尝试使用request.args.get(),但仍然得到相同的错误。我认为这实际上是一个POST无法获取,因为在我的redirect()调用中有“code=307”参数。
def display_preds():
  filepath = request.args.get("filepath")
  top_1 = request.args.get("top_1")
  ....