Flask重定向不适用于通过POST提交的表单

时间:2018-08-17 19:46:08

标签: forms flask

我正在尝试将表单(显示在我的books.html页面底部(请参见下面的相关HTML)提交至/reviews路由,该路由具有一个{{1} }中的语句。但是,在提交表单时,我收到了return redirect(url_for('reviews'))

我检查了其他帖子,发现重定向是与POST方法一起使用的,对我的方法进行了交叉检查,以提交到达405 Method Not Allowed Error/books路线所需的表单及其表单动作属性及其相关方法。一切似乎都很好。我仍然无法发掘错误。

期望的行为是用户通过下面/reviews页上的表单提交评论,并且该页面会更新并显示评论,评分和平均值。评分。 /books路由中的逻辑应进行处理和更新。

/reviews

2 个答案:

答案 0 :(得分:0)

您可以尝试在方法中添加“ GET”吗?

 @app.route("/reviews", methods=["GET", "POST"])
 @login_required
 def reviews():
     book_id = request.form.get("bookid")
     register_id = session["user_id"]

可能是flask中的重定向实现将请求更改为GET请求,而您的评论路线不允许该请求

答案 1 :(得分:0)

这是因为您要重定向到评论功能(即路线/评论)。但是您的方法只能发布。我认为重定向需要GET方法才能加载某些页面。