我正在用Python/Flask创建一个webapp。我用的是蓝图
假设我搜索一本书,并通过GET请求到达URL/search?book=somebook&author=someauthor
。在该页面上,我为每个结果设置了按钮,这些按钮将结果保存到用户保存的书籍中。这将是一个POST
请求。但是,我希望使用相同的URL参数将用户返回到相同的搜索页面
因此,流程是:
/search?book=somebook&author=someauthor
上结束POST
将书保存到用户保存的书中李>/search?book=somebook&author=someauthor
,搜索结果页面被重新填充李>我不正确地认为,我想要这样的东西:
@search_bp.route('/search', methods=["GET", "POST"])
def search():
if request.method == "POST":
# save book to user's saved books
# somehow end up back on the same page from here
elif request.method == "GET":
# use request.args to populate page with results
return render_template("search.html", books=books)
在我看来,我想return redirect(url_for("search_bp.search"))
,但不知怎的,我想把request.args
返回到URL中。是我硬编码URL的唯一选择,即连接字符串url = "/search?book=" + request.args.get("book") + "&author=" + request.args.get("author")
,以便return redirect(url)
您可以将值/变量传递给
flask.url_for
,例如:传递给
url_for
的其他值/参数将作为GET参数添加到URL中,然后您可以执行return redirect(my_url)
https://flask.palletsprojects.com/en/1.1.x/api/#flask.url_for
相关问题 更多 >
编程相关推荐