Python 烧瓶表单数据为空

Python 烧瓶表单数据为空,python,flask,Python,Flask,我用烧瓶创建了一个表单。这是处理来自此表单的请求的python代码: @app.route("/submitclips/", methods=['GET', 'POST']) def submitclips(): print(request) print(request.method) result = request.form.to_dict(flat=False) print(result) print(request.data) HTML

我用烧瓶创建了一个表单。这是处理来自此表单的请求的python代码:

@app.route("/submitclips/", methods=['GET', 'POST'])
def submitclips():
   print(request)
   print(request.method)
   result = request.form.to_dict(flat=False)
   print(result)
   print(request.data)
HTML代码:

<form action="/submitclips" method="POST">
<input type="hidden" name="taskpath" value="paththotask">
<table>
    <th>Video</th>
    <th>Mute</th>
    <th>Delete</th>
    <th>Keep</th>
    
    <tr>
        <td>
            <video width="320" height="240" controls>
              <source src="videosource.mp4" type="video/mp4">
            </video>
        </td>
        <td>
            <input type="radio" id="name$mute" name="name" value="mute">
        </td>
        <td>
            <input type="radio" id="name$delete" name="name" value="delete">
        </td>
        <td>
            <input type="radio" id="name$keep" name="name" value="keep" checked>
        </td>
    </tr>
</table>
<input type="submit">
</form>

视频
哑巴
删除
保持
这是一个表,有多行,我更改了值以使其更具可读性。我保证所有的名字都是唯一的,尽管它们应该是唯一的

它下面有一些代码,但是由于表单似乎是空的,所以它在那里崩溃了。我已经检查了HTML,它都是正确的,所有输入都有一个名称。我还记录了GoogleChrome上的网络流量以进行测试,我可以看到表单中的所有数据都存在于请求数据中。所以我很确定它在前端是正确的。问题是它在这个方法中没有出现。在代码中,您可以看到几个打印语句,所有这些语句都显示空数据,而不是我在chrome浏览器中看到的数据。方法是GET,我不知道是否应该是GET。在HTML中,我选择它作为POST方法,但是如果我从python代码中删除GET选项,它会给我一个“methodnotallowed”错误


我不知道该怎么办,这是以前在我的windows机器上运行的一些旧代码。我没有对它做任何更改,但现在我在linux上工作,它完全崩溃了,所有表单都不工作,都是空数据。

这里您提到了端点
/submitclips
有GET和POST方法。这意味着每当我点击url“baseurl/submitclips”时,就会执行这个函数。在函数内部,您没有指定哪种方法会有什么响应,即如果我使用
GET
POST
调用端点,您将以相同的方式处理它。这不是一个好的做法。我建议你放一些像:

if-request.method==“POST”
if-request.method==“GET”
根据方法的类型分离执行

现在来看HTML,您必须拥有将请求发送到服务器的HTML。如果数据来自表单,那么作为表单的一部分,您可以添加两个属性

指定在提交此表单时,您将通过POST方法将表单数据发送到“/submitclips”url。看起来是这样的


我发现了错误。我的HTML代码将表单提交给“/submitclips”,而python代码接收来自“/submitclips/”的请求。我不知道为什么这是错误的,我为flask学习的教程明确告诉我,在末尾加一个斜杠意味着它可以同时接收来自“/submitclips”和“/submitclips/”的请求。这在我以前的windows机器上也起作用,但在我的linux机器上不再起作用。我很高兴它被解决了,但是如果有人能解释为什么这是错误的,请随意回答。

您能显示HTML部分吗?您似乎正在发布表单,这将使表单数据打印为空。同时显示
return
命令。如果对
表单
返回
使用相同的模板,则在加载表单时,它将是一个
GET
。我将HTML代码放在其中,return语句实际上只是一个重定向:return redirect(“/”)
def submitclips():
   if request.method == 'POST' :
       print(request)
       print(request.method)
       result = request.form.to_dict(flat=False)
       print(result)
       print(request.data)