【问题标题】:Flask / WTForms / Jinja2 - preserve form data from HTML url callFlask / WTForms / Jinja2 - 保存来自 HTML url 调用的表单数据
【发布时间】:2022-02-09 18:49:25
【问题描述】:

当在 HTML 中按下重新发送验证按钮时,我试图保留 Flask 中的登录表单中的信息。问题是按钮重定向页面而不保留已经输入的登录信息。

因此,有没有办法在 Jinja2/HTML 中保存/重新填充表单? 抱歉,如果措辞不当,我对 Web 开发非常陌生。

这是相关的代码 - auth.py(在函数 signup() 内):

 if request.method == 'GET':
    verificationCode = str(random.randint(1000, 9999))
    print("Generating: {}".format(verificationCode))
    ret = oled.postPopup(popupRequest(priority=0, time=30, title="Signup Code", message=verificationCode))
    if "Error" in ret:
        flash("Error: Please try again later")

signup.html:

<span style="float:right;">
     <a href="{{ url_for('auth_bp.signup') }}">Resend Verification</a>
</span>

到目前为止,我的尝试包括通过 SessionStorage 保存信息并在再次调用表单时重新填充,以及在 Jinja2 HTML 中调用新版本的 verifyCode 函数(目前正在处理此问题)。

谢谢你,H.

【问题讨论】:

    标签: jinja2 flask-wtforms


    【解决方案1】:

    找到了一个解决方案:我决定直接从 HTML 文件中调用 Python 函数,而不是创建字典或存储页面上的单个元素。在相应的 app.py(定义渲染模板的地方)according to the Flask documentation 中,需要在包装器中声明 resendVerification 函数(如上所示),如下所示:

    @main_bp.context_processor
    def utility_processor():
        def resendVerification():
            // function code
            pass
    return dict(resendVerification=resendVerification)
    

    并在 {% block content %} 中使用:

    {{ resendVerification() }}
    

    【讨论】:

      猜你喜欢
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 2021-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多