如何创建查找获取请求的if语句?

我正在使用flask和Fetch()

我有一个表格 当文本输入“ a”更改/输入文本时。 提取请求将发送到“ / validate-form”。

当按下表单末尾的提交按钮时。 它还会将表单提交到“ / validate-form”。

如果可以创建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"
qinjilei 回答:如何创建查找获取请求的if语句?

如果我很好地理解了您想要的内容并加以区分,则可以在javascript中通过事件类型测试事件类型,然后再通过“ POST”发送数据,如下所示:

   if(window.event.type === 'submit'){
        // You are sending data
    } else {
       // You are validating data
    }
,

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

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

<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"
本文链接:https://www.f2er.com/3095860.html

大家都在问