Posting flask data through a form gives 400 Bad Request

I am trying to send data through my interface, and the flash application throws 400 bad requests. However, if I do the same with a call to Curl, it seems to work fine. I don’t know what I am missing in my uniform.

Below is the code of my form

<script> function sub() { console.log('sub function'); $("#fquery").submit(); } </script> <form id="form1" action="/final" method="post"> <input id='query' type="text"> <button type="submit" onClick='sub()'>Submit &raquo;</button> </form> 

On the server side:

 @app.route('/final',methods=['POST','GET']) def message(): if request.method == 'POST': app.logger.debug(" entered message function"+ request.form['query']) q = request.form['query'] return render_template('final.html',query=q,result="Core_Table Output") 

The server side seems fine to me. Since I get a response to curl request

 curl http://localhost:8000/final -d "query=select starct st blah blah" -X POST -v * Trying 127.0.0.1... connected > POST /gc HTTP/1.1 > User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3 > Host: localhost:8000 > Accept: */* > Content-Length: 41 > Content-Type: application/x-www-form-urlencoded > * upload completely sent off: 41out of 41 bytes * HTTP 1.0, assume close after body < HTTP/1.0 200 OK < Content-Type: text/html; charset=utf-8 < Content-Length: 1961 < Server: Werkzeug/0.9.4 Python/2.7.3 < Date: Thu, 24 Oct 2013 23:33:12 GMT 
+6
source share
2 answers

And, I think, I see this: you set id , but not name for the input element. However, name used in form data that is sent to the server. This causes an error KeyError at request.form['query'] , 400 which causes an error.

+20
source

In addition to what @Robin Krahl said, you should also add enctype="multipart/form-data" to your form. So the code might look like this:

 <form id="form1" action="/final" method="post" enctype="multipart/form-data"> <input id='query' type="text"> <button type="submit" onClick='sub()'>Submit &raquo;</button> </form>" 
+1
source

Source: https://habr.com/ru/post/956687/


All Articles