亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創建一個 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 關注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號