Flask / WTForms / Jinja2 - 保留来自 HTML url 调用的表单数据
Flask / WTForms / Jinja2 - preserve form data from HTML url call
当在 HTML 中按下重新发送验证按钮时,我试图保留 Flask 中创建的登录表单中的信息。问题是按钮重定向页面而不保留已键入的登录信息。
因此,有没有办法在 Jinja2 中保存/重新填充表单/HTML?
如果措辞不当,我深表歉意,我是网络开发的新手。
这是相关代码 -
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 中调用新版本的 verificationCode 函数(目前正在处理此问题)。
谢谢你,H。
找到解决方案:我决定直接从 HTML 文件中调用 Python 函数,而不是创建字典或在页面上存储单个元素。在对应的app.py(定义render模板的地方)according to the Flask documentation中,需要在wrapper中声明resendVerification函数(上面贴过),像这样:
@main_bp.context_processor
def utility_processor():
def resendVerification():
// function code
pass
return dict(resendVerification=resendVerification)
并在 {% block content %} 中调用:
{{ resendVerification() }}
当在 HTML 中按下重新发送验证按钮时,我试图保留 Flask 中创建的登录表单中的信息。问题是按钮重定向页面而不保留已键入的登录信息。
因此,有没有办法在 Jinja2 中保存/重新填充表单/HTML? 如果措辞不当,我深表歉意,我是网络开发的新手。
这是相关代码 - 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 中调用新版本的 verificationCode 函数(目前正在处理此问题)。
谢谢你,H。
找到解决方案:我决定直接从 HTML 文件中调用 Python 函数,而不是创建字典或在页面上存储单个元素。在对应的app.py(定义render模板的地方)according to the Flask documentation中,需要在wrapper中声明resendVerification函数(上面贴过),像这样:
@main_bp.context_processor
def utility_processor():
def resendVerification():
// function code
pass
return dict(resendVerification=resendVerification)
并在 {% block content %} 中调用:
{{ resendVerification() }}