python get form data how can this be?
14,084
The data is in the field request.form, and can be fetched by:
name = request.form['name']
phone = request.form['phone']
Remark. If they are not sent with, this code will throw an exception.
Longer explanation The reason is that the data is sent using a encoding known as application/x-www-form-urlencoded. The data is in request.data field, but to decode it you can use request.form, and Flask will automatically decode it as application/x-www-form-urlencoded.
Author by
user2950593
Updated on November 28, 2022Comments
-
user2950593 over 1 year
This is my js function for ajax form submit:
$('.sendButton').on('click', function(){ $.post( "/send-form", $('#contactForm').serialize()) }
This is my form:
<form id="contactForm"> <input id="fastName" name="name" type="text" /> <input id="fastPhone" name="phone" type="text" /> <div class="sendButton">send</div> </form>
And this is my backend function to handle it, I am using python, flask
@app.route("/send-form", methods=['POST']) def send_form(): data = request.data print request.data
And in my console it prints data:
127.0.0.1 - - [22/Feb/2015 23:50:54] "POST /send-form HTTP/1.1" 200 - name=dfdsf&phone=89920203725
But I did the same in another project and it prints nothing. Details are here: Can't get post ajax request data python How can this be possible?