为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建一个 if 语句来查找获取请求?

如何创建一个 if 语句来查找获取请求?

潇湘沐 2022-01-01 20:33:45
我正在使用 Flask 和 Fetch()我有一个表单当文本输入“a”更改/输入文本时。一个获取请求被发送到“/validate-form”。当表单末尾的提交按钮被按下时。它也将表单提交到“/validate-form”。我可以创建什么 If else 语句,它将能够区分是发送获取请求还是提交表单到“/validate-form”我已经尝试了下面的方法,但是“FETCH”一直被打印到终端上。@app.route("/validate-form", methods = ["POST"])def register():    if request.method == "POST":        if "username" in request.form and "password" in request.form:           print("submitted")           return "Thanks"        else:            print("FETCH")            return "Thanks"
查看完整描述

2 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

它对我有用,它正确打印“提交”。


我可以提出的解决方案是使用一些隐藏的输入,只有在单击提交按钮时才会发送这些输入。


<input type="hidden" name="isFormSubmitted" value="true" />

更完整的例子:


前端:


<h1>Hello Flask</h1>

<form id="myForm" action="/validate-form" method="POST">

    <label>Password</label>

    <input name="password" type="password" />

    <label>Username</label>

    <input name="username" type="text" />

    <input type="hidden" name="isFormSubmitted" value="true" />

    <label>Validate when I am changed</label>

    <input name="validate" type="text" id="validate"/>

    <input type="submit" value="Send" />

</form>



<script>

window.onload = function() {

  const myForm = document.getElementById("myForm");

  const validateInput = document.getElementById("validate");

  //input or change event handler

  validate.addEventListener("input", function(e) {

    const data = new FormData(myForm);

    data.set("isFormSubmitted", "false");

    fetch('/validate-form', {

      method: 'POST',

      body: data,

    }).then((response) => {

        console.log(response);

    });

  })

}

</script>

后端:


@app.route("/validate-form", methods = ["POST"])

def register():

    if request.method == "POST":

        print(request.form)

        if request.form["isFormSubmitted"] == "true":

           print("SUBMITTED")

           return "Thanks submitted"

        else:

            print("FETCH")

            return "Thanks fetch"


查看完整回答
反对 回复 2022-01-01
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

如果我很清楚你想要什么并且为了区分它,你可以在通过“POST”发送数据之前在javascript中测试事件类型,如下所示:


   if(window.event.type === 'submit'){

        // You are sending data

    } else {

       // You are validating data

    }


查看完整回答
反对 回复 2022-01-01
  • 2 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号