使用Flask从提交的HTML表单值中重定向链接

时间:2018-08-29 13:55:32

标签: python flask

我在Flask支持的网站上有一个搜索栏,当用户单击搜索按钮时,该搜索栏可以很好地工作(我使用的是带有POST请求的JS代码)。但是,当用户单击“输入”来发送表单时,它不起作用。在这种情况下,浏览器会加载类似/?finder=searchedword的链接。

finder是用于表单的html代码的name属性的值。为了解决该问题,我尝试设置一个重定向,该重定向始终将重定向到应加载的正确链接,但是不幸的是,使用此解决方案无效。它只是简单地重定向到主页"/"

这是我管理重定向的方式:

@app.route("/?finder=<tag>")
def search(tag):
    t = tag.replace(' ', '-')
    return redirect("/result/%s/" % (t,), code=301)

我的问题是处理这种重定向的正确技术是什么?这种重定向始终对我有用,并且我在多个应用程序中都使用它,因此我不知道实现的弱点是什么。

1 个答案:

答案 0 :(得分:1)

过去,问号实际上不是路由的一部分,而是页面的参数。因此Flask只是匹配网址“ /”。

尝试这样的事情:

@app.route("/")
def search():
    if "finder" in request.args:
        t = request.args["finder"].replace(" ", "-")
        return redirect("/result/%s/" % (t,), code=301)