python flask重定向到另一个页面

时间:2017-04-28 11:09:58

标签: python flask

我的登录页面为login.py,呈现login.html。在提交时,我想重定向到呈现mainpage.py的{​​{1}}。但在提交时点击它只是没有重定向。我找不到页面错误。网址保持不变

mainpage.html

重定向选项应该提到什么?它是html文件名或py文件名,其中html被呈现?我尝试使用html filename,py filename和@ app.route中的名称。但没有成功

2 个答案:

答案 0 :(得分:1)

404错误的原因:

当您重定向到/mainpage时,Flask会在login.py文件中寻找路由处理程序,而不是mainpage.py。由于login.py没有/mainpage的路由处理程序,因此它会为您提供404.它永远不会达到mainpage.py

您正在尝试做什么以及可能的解决方案:

您要做的是将您的路线分隔成不同的文件。为此,您需要明确告诉 Flask您的路由处理程序(换句话说,它应该在哪些文件中寻找路由处理程序)。

有两种方法可以做到这一点:

  1. 请参阅此文档(Larger Applications)以了解如何将文件整理为一个包。您必须将mainpage.py导入login.py,反之亦然。

  2. 或使用蓝图:Modular Applications with Blueprints

  3.   

    请注意,如果您的申请规模很大,您只需要这样做。如果您只有几个路由处理程序,那么您可能应该将所有内容保持在一个文件中。

答案 1 :(得分:0)

redirect的第一个参数是您希望客户端重定向到的网址。您可以将url硬编码为第一个参数。此外,您还可以使用url_for生成给定端点的网址。

例如:

@app.route("/url")
def endpoint():
    return "Test redirect & url_for"

您可以使用redirect(url_for("endpoint"))redirect("/url")重定向到/url

Quickstart指出使用url_for代替硬编码网址的优势。