如何在 Flask 模板中制作重定向按钮

Posted

技术标签:

【中文标题】如何在 Flask 模板中制作重定向按钮【英文标题】:How to make a redirect button in Flask template 【发布时间】:2021-03-11 22:38:18 【问题描述】:

我正在尝试使用烧瓶制作网络应用程序,但在重定向到我的 app.py 文件中的另一个页面/路由时遇到问题。我还为另一个(登录)页面设置了 html 模板。

这是我在主 app.py 中的代码:

@app.route('/', methods=['GET', 'POST']) 

    if request.method == 'GET':
        pass

    if request.method == 'POST':
        pass

    return render_template('index.html', passable=passable)

@app.route('/login', methods=['GET', 'POST'])
def login():

    if request.method == 'POST':
        name = request.form.get('username')
        post = request.form.get('password')
        # still need to complete

    return render_template('login.html')

我已经导入了所有相关的模块(我认为)。

在我的 Index.html 文件中,我有一个按钮,我希望它重定向到我的 login.html 页面。目前我正在做这样的事情:

<button type="submit" onclick='Flask.redirect(url_for(login))' value="editor">

每当我(本地)启动页面时,我都会收到此错误。 jinja2.exceptions.UndefinedError jinja2.exceptions.UndefinedError: 'Flask' 未定义

如何让我的按钮重定向到“登录”烧瓶路线?

【问题讨论】:

这能回答你的问题吗? Redirecting to URL in Flask 试试()=&gt;window.location= url_for('login') 【参考方案1】:

如果您希望您的表单提交到不同的路线,您只需执行&lt;form action=" url_for('app.login') "&gt;

如果您只想添加指向页面的链接,请使用&lt;a&gt; 标签。

如果要处理请求然后重定向,只需使用flask提供的redirect函数即可。

【讨论】:

【参考方案2】:
<a href="url_for(app.login)" >Login</a>

【讨论】:

虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。

以上是关于如何在 Flask 模板中制作重定向按钮的主要内容,如果未能解决你的问题,请参考以下文章

在Flask中,如何做请求重定向?

Flask04-模板

如何在 Flask 上使用 args 重定向视图函数而不使用查询字符串?

Flask:提交后如何重定向到帖子视图?

如何使用带参数的jquery重定向到另一个页面

来自ajaxtowards flask的发布请求后页面未呈现