如何使用 Python 中的 BaseHTTPRequestHandler 区分同一表单中的多个 POST 按钮?

问题描述 投票:0回答:1

我有这样的表格:

<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>

在 PHP 中我可以使用

isset($_POST['submit_update_entry'])
isset($_POST['submit_update_entry'])
.

我已经在网上搜索过了,只能找到Flask或Django的解决方案。还在课堂上搜索

BaseHTTPRequestHandler
,但没有运气。

编辑:所以我终于想出了怎么做。显然按钮名称在

field_data = self.rfile.read(length)
中,但是当我解析
field_data
以使用
fields = parse.parse_qs(str(field_data,"UTF-8"))
获取字段时,它被删除了。我必须将线路更改为
fields = parse.parse_qs(str(field_data,"UTF-8"), keep_blank_values=True)
才能看到
submit_update_entry
submit_delete_entry
.

python httpserver basehttprequesthandler
1个回答
0
投票

所以我终于想出了怎么做。显然按钮名称在

field_data = self.rfile.read(length)

但是当我解析

field_data
以使用

获取字段时

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

它被删除了。我不得不将线路更改为

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

submit_update_entry
submit_delete_entry
.

© www.soinside.com 2019 - 2024. All rights reserved.