第一次使用 Flask。我正在尝试为表单添加确认对话框,但仅限于某些条件。所以我无法在客户端执行此操作。我能够为 GET 请求添加它,但我无法为 POST 请求添加它,因为我需要传递表单数据。这是我所做的。
这是主表单的表单提交。在取消时,它只是通过获取配置请求来刷新当前页面上的数据。但是在应用时,它会向 /confirm 路由发出 POST 请求
主文件
<form class="module-form pure-form pure-form-aligned" autocomplete="off" id="uguu">
<fieldset>
<div id="export-settings" class="module-block insight-border">
<div class="pure-control-group">
{{ form.export_server.label }}
{{ form_input(form.export_server, maxlength=255) }}
</div>
<div class="pure-control-group">
{{ form.export_port.label }}
{{ form_input(form.export_port) }}
</div>
<div class="submit-button-group">
<button class="pure-button pure-button-primary" type="submit"
formaction="confirm" formmethod="post">Apply</button>
<button class="pure-button pure-button-primary cancel" type="submit"
formaction="config" formmethod="get">Cancel</button>
</div>
</div>
</fieldset>
</form>
这是flask服务器中的代码段
@config_page.route("/config", methods=["GET", "POST"])
def config():
if request.method == "POST":
return post_config() #Uses request.form
return get_config()
@config_page.route("/confirm", methods=["POST"])
def confirm():
with ClassA() as class_a:
class_a.load()
#Need to show the confirmation only on this condition
if class_a.is_val_x and request.form['is_val_x'] == 'on':
#Is this the right way to go about it?
return render_template('confirm.html', form=request.form )
return redirect(url_for('.config',form=request.form),code=307)
最后是confirm.html 中的代码段。get 请求工作正常,但我不确定如何将表单数据从flask /confirm 路由发布到/config。我什至不确定这是否是正确的方法。真的欢迎任何帮助吗?也欢迎 jQuery 或 javaScript 中任何可能的解决方案。
阿晨1998
相关分类