我有以下代码:

@app.route("/", methods=["GET", "POST"])
def login():
    if request.method == "GET":
        return render_template("login.html")
    elif request.method == "POST":
        username, password = request.form.get("username"), request.form.get("password")
        if validate_login(username, password):
            return redirect("/home.html")
        else:
            return render_template("login.html", login_message="Invalid username or password!")

使用以下home.html文件:

{% extends "layout.html" %}

{% block body %}
    Hello {{ username }}, your password is {{ password }}!
{% endblock %}

这里的重点是,我正在寻找一些方法来使用redirect函数将变量传递给home.html(就像代码render_template的最后一行一样),但经过一些密集的谷歌搜索,我仍然找不到这样做的方法.有人知道怎么做吗?

推荐答案

我假设您正在使用Flasket作为路由引擎.

如果是这样,您可以重定向到新路由,而不是重定向到裸html url.类似于:

if validate_login(username, password):
    return redirect(f"/home/{username}")

然后让该路由正常使用该变量渲染home.html模板:

@app.route("/home/<username>")
def user_home(username):
    return render_template("home.html", username=username)

对于您需要的其他变量,您可以让user_home函数检索它们并将它们传递给模板,或者使用一些中间件函数向用户的请求添加其他数据.

Python相关问答推荐

在Python中根据id填写年份系列

CustomTKinter-向表单添加额外的输入字段

如何在vercel中指定Python运行时版本?

按照行主要蛇扫描顺序对点列表进行排序

如何使用stride_tricks.as_strided逆转NumPy数组

如何从FDaGrid实例中删除某些函数?

比较两个二元组列表,NP.isin

Polars LazyFrame在收集后未返回指定的模式顺序

如何从具有不同len的列表字典中创建摘要表?

为什么NumPy的向量化计算在将向量存储为类属性时较慢?'

使用NeuralProphet绘制置信区间时出错

基于形状而非距离的两个numpy数组相似性

如何防止Pandas将索引标为周期?

python sklearn ValueError:使用序列设置数组元素

Pandas:填充行并删除重复项,但保留不同的值

循环浏览每个客户记录,以获取他们来自的第一个/最后一个渠道

BeautifulSoup:超过24个字符(从a到z)的迭代失败:降低了首次深入了解数据集的复杂性:

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

将CSS链接到HTML文件的问题

如何强制向量中的特定元素在Gekko中处于优化解决方案中