在flask/jinja的render_template函数中没有声明值的变量默认值是多少?

我正在为我的网络应用程序设计登录和注册页面。目前,我正在使用烧瓶开发它。我想添加一个功能,以便如果用户在注册或登录时弄乱了输入(例如,数据库中已经存在电子邮件),它将在闪烁消息和重定向之前保留其他输入字段的值他们回到登录/注册页面。我目前的机制是:

if not check_password_hash(user.hash,password):
            flash("Incorrect password",category="error")
            return redirect("/login")

这会检查密码是否与帐户的密码匹配。如您所见,它正在闪烁一条错误消息,然后将它们重定向回页面以重试。但是,这会删除重定向之前填写的所有字段的值,如果用户犯了很多错误,这可能会让用户感到非常沮丧。所以我想到做的是这样的:

if not check_password_hash(user.hash,password):
        flash("Incorrect password",category="error")
        return render_template("login.html",email=email)

这会渲染 login.html 的模板并发送电子邮件的值(即 request.form.get("email"))。然而,在实际的 HTML 文件中,我将 jinja 输入用于两个变量:

<div class = "form-group">
        <input autofocus class="form-control" name="email" placeholder="Email" type="email" required value = "{{ email }}">
</div>
<div class = "form-group">
        <input class="form-control" name="password" placeholder="Password" type="password" required value = "{{ password }}">
</div>

现在,上面我只发送 1 个变量的实际代码效果很好,但是(现在终于解决了真正的问题)我想知道如果我不指定上面的密码变量的输入会发生什么在 login.html 中仍然有一个 jinja 变量。它只是自动设置为无吗?或者这是否会在以后因为不故意设置密码 = 无而给我带来问题?当我只调用 render_template("login.html") 时会发生什么?在我的注册页面上实现这个之前,我想知道这一点,这需要更多的输入和更多的检查。感谢您的时间和帮助。

zhh00 回答:在flask/jinja的render_template函数中没有声明值的变量默认值是多少?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/791.html

大家都在问