如何将用户路由到另一个 url Jinja

Posted

技术标签:

【中文标题】如何将用户路由到另一个 url Jinja【英文标题】:How to route user to another url Jinja 【发布时间】:2016-07-04 05:38:03 【问题描述】:

我正在尝试使用烧瓶和 python 开发一个网站。我已经到了一个地步,我正在尝试为登录体验创建一个登录名,但无法完全理解。我会跳到一个例子:

elif request.method == 'POST':
<<do stuff>>
return render_template(
    'something.html',
    somedata
)

但网址没有改变。在某些情况下这很好,但我希望它从说 /login 更改为 /main 有两个原因。 a)审美(好吧,我可以用一点创造力来解决这个问题) b) 我认为没有办法处理 2 个不同的 POST “事件”(或者有吗?)。

我也很关心 POST 部分。如果我在同一页面上需要 2 个不同的按钮怎么办,是否可以解决这个问题?还是我错过了什么?

【问题讨论】:

我认为您需要重定向到另一条路线,然后处理。 this 有帮助吗? 你需要一个叫做redirect的东西,它在Flask中可以使用redirect函数来实现。 哇,不敢相信我没有找到那个 :( 所以我必须用“响应”传递变量? 【参考方案1】:

您将要重定向到另一个网址。在不知道您使用什么库来登录用户的情况下,很难具体告诉您如何登录,但这是一般的想法。

from flask import Flask, redirect, request, render_template
app = Flask("app_name")

@app.route('/', methods=["GET", "POST"])
def login_route():
    if request.method == "GET":
        return render_template("login_page.html")
    elif request.method == "POST":
        # Login user
        return redirect("main_page", code=303)

@app.route("/")
def main_page():
    return "I'm the main page."

app.run(host="0.0.0.0", port=5001)

【讨论】:

以上是关于如何将用户路由到另一个 url Jinja的主要内容,如果未能解决你的问题,请参考以下文章

查尔斯(或替代) - 将请求重新路由到另一个 URL

从一个html跳到另一个htmlvue可以监听路由变化吗

vue中的路由是啥意思

React-router-dom :是不是可以使用 Link 而不将用户路由到另一个页面?

Laravel 5.5登录后重定向到特定路由

如何在 MULE 中的 Flow 结束时检查有效的 URL 并将其路由到 VM ..?