【发布时间】:2018-10-11 05:21:10
【问题描述】:
第一次使用 Flask。我正在尝试为表单添加确认对话框,但仅在某些条件下。所以我无法在客户端执行此操作。我能够为 GET 请求添加它,但我无法为 POST 请求添加它,因为我需要传递表单数据。这是我所做的。
这是主表单的表单提交。在取消时,它只是通过执行获取配置请求来刷新当前页面上的数据。但是在 Apply 上,它会向 /confirm route 发出 POST 请求
main.html
<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>
这是烧瓶服务器中的代码段
@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 中的代码段。获取请求工作正常,但我不确定如何将表单数据从烧瓶 /confirm 路由发布到 /config。我什至不确定这是否是正确的方法。真的欢迎任何帮助吗?也欢迎使用 jQuery 或 javaScript 中的任何可能的解决方案。
<div> Are you sure kind of dialog? </div>
<form>
<button class="pure-button pure-button-primary deny" type="submit"
formaction="config" formmethod="get">Cancel</button>
<button class="pure-button button-warning confirm" type="submit"
formaction="config" formmethod="post">Confirm</button>
</form>
【问题讨论】:
标签: javascript python html flask