Login Or Sign up

How to differentiate between multiple POST buttons within the same form using BaseHTTPRequestHandler in Python?

41 Views Asked by At

I have a form like so:

<form method="post">
    <div id="some-div">
        <input id="some-input" type="text" name="input" placeholder="some input">
        <button id="update-button" type="submit" name="submit_update_entry">Save changes</button>
        <button id="delete-button" type="submit" name="submit_delete_entry">Delete entry</button>
    </div>

In PHP I can use isset($_POST['submit_update_entry']) or isset($_POST['submit_update_entry']).

I've already searched the internet and can only find solutions for Flask or Django. Also searched in class BaseHTTPRequestHandler, but with no luck.

EDIT: So I finally figured out how to do it. Apparently the button name is in field_data = self.rfile.read(length), but when I parsed field_data to get the fields using fields = parse.parse_qs(str(field_data,"UTF-8")), it was getting deleted. I had to change the line to fields = parse.parse_qs(str(field_data,"UTF-8"), keep_blank_values=True) to see submit_update_entry or submit_delete_entry.

1

There are 1 best solutions below

0
ijustwantedtosayhi On

So I finally figured out how to do it. Apparently the button name is in

field_data = self.rfile.read(length)

but when I parsed field_data to get the fields using

fields = parse.parse_qs(str(field_data,"UTF-8"))

it was getting deleted. I had to change the line to

fields = parse.parse_qs(str(field_data,"UTF-8"), keep_blank_values=True)

to see submit_update_entry or submit_delete_entry.