Python 如何在POST请求之后重定向到Flask中由GET请求生成的同一页面?

Python 如何在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将

我正在用Python/Flask创建一个webapp。我用的是蓝图

假设我搜索一本书,通过GET请求到达URL
/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)


    啊,我是个傻瓜。我认为这会将它们作为模板变量传递。我明天试试,然后批准你的答案。啊,我是个傻瓜。我认为这会将它们作为模板变量传递。我明天试试看,然后批准你的答案。