Python 如何在POST请求之后重定向到Flask中由GET请求生成的同一页面?
我正在用Python/Flask创建一个webapp。我用的是蓝图 假设我搜索一本书,通过GET请求到达URLPython 如何在POST请求之后重定向到Flask中由GET请求生成的同一页面?,python,flask,post,redirect,get,Python,Flask,Post,Redirect,Get,我正在用Python/Flask创建一个webapp。我用的是蓝图 假设我搜索一本书,通过GET请求到达URL/search?book=somebook&author=someauthor。在该页面上,我为每个结果设置了按钮,这些按钮将结果保存到用户保存的书籍中。这将是一个POST请求。但是,我希望使用相同的URL参数将用户返回到相同的搜索页面 因此,流程是: 用户提交搜索并在/search?book=somebook&author=someauthor 用户单击其中一个结果上的订阅。POST将
/search?book=somebook&author=someauthor
。在该页面上,我为每个结果设置了按钮,这些按钮将结果保存到用户保存的书籍中。这将是一个POST
请求。但是,我希望使用相同的URL参数将用户返回到相同的搜索页面
因此,流程是:
/search?book=somebook&author=someauthor
POST
将书籍保存到用户保存的书籍中/search?book=somebook&author=someauthor
,搜索结果页面被重新填充@search\u bp.route('/search',methods=[“GET”,“POST”])
def search():
如果request.method==“POST”:
#将书本保存到用户保存的书本
#不知怎的从这里回到了同一页
elif request.method==“GET”:
#使用request.args用结果填充页面
返回呈现模板(“search.html”,books=books)
在我看来,我想
返回重定向(url\u for(“search\u bp.search”))
,但不知何故,我将请求.args
返回到url中。是我硬编码URL的唯一选择,即连接字符串URL=“/search?book=“+request.args.get(“book”)+”&author=“+request.args.get(“author”)
,这样我就可以返回重定向(URL)
?您可以将值/变量传递到flask.URL\u以获得
,例如:
book=request.args.get('book')
author=request.args.get('author')
my\u url=url\u for('search\u bp.search',book=book,author=author)
为传递到url\u的其他值/参数将作为GET参数添加到url中,然后您可以执行返回重定向(my\u url)
您可以将值/变量传递给的flask.url\u,例如:
book=request.args.get('book')
author=request.args.get('author')
my\u url=url\u for('search\u bp.search',book=book,author=author)
为
传递到url\u的其他值/参数将作为GET参数添加到url中,然后您可以执行返回重定向(my\u url)
啊,我是个傻瓜。我认为这会将它们作为模板变量传递。我明天试试,然后批准你的答案。啊,我是个傻瓜。我认为这会将它们作为模板变量传递。我明天试试看,然后批准你的答案。