javascript - 如何使用 Flask 添加 POST 请求的确认对话框?

标签 javascript python html flask

第一次使用 Flask。我正在尝试为表单添加确认对话框,但仅限于某些条件。所以我无法在客户端执行此操作。我能够为 GET 请求添加它,但无法为 POST 请求添加它,因为我需要传递表单数据。这是我所做的。

这是主表单的表单提交。取消时,它只是通过执行配置的 get 请求来刷新当前页面上的数据。但在 Apply 时,它会向/confirm 路由发出 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>

这是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中的代码段。获取请求工作正常,但我不确定如何将表单数据从 flask /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>

最佳答案

正如您所说,获取请求工作正常。所以您一定看到了模板confirm.html。编辑表单标签。

<form method="POST" action="./config">
<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>

现在,一旦您在代码段上单击“确认”,您就可以通过打印请求数据来调试表单字段。

@config_page.route("/config", methods=["GET", "POST"])
def config():
if request.method == "POST":
 print(request)
 return post_config() #Uses request.form
return get_config()

如果你想使用ajax/jquery提交表单,你可以这样做。

<script type="text/javascript">
  $('.confirm').click(function (e) {
    e.preventDefault();
    $.ajax({
        url: "./config",
        type: 'post',
        dataType: "json",
        data: {
            search: request.term, request: 1
        },
        success: function (data) {
            response(data);
        }
    });
   }
</script>

关于javascript - 如何使用 Flask 添加 POST 请求的确认对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52752734/

相关文章:

python - 如何定义用户输入?

javascript - CSS图像被子

javascript - 使用 JavaScript 挑选不重复的随机数

javascript - 以特定格式获取特定时区的当前日期时间

Python 字符串替换行为不同

javascript - 通过ID获取元素时,如何获取该部分中的内容?

html - Weebly 导航栏中的中心内容

javascript 设置窗口的大小

javascript - readline.write() 未到达标准输出

python - 在 Python 中解析多行