Python 表单启动除一个案例外的所有POST请求

Python 表单启动除一个案例外的所有POST请求,python,sqlite,http,flask,werkzeug,Python,Sqlite,Http,Flask,Werkzeug,我正在构建一个简单的web应用程序,显示登录用户的各种硬件资产注册。在我的Html页面中,我有一个表,如下所示: <tbody> {% for hard in HARDWARE %} <tr> <td> <form action="{{url_for('del_hardware', id=hard.id)}}" method="POST"> <input type="hidden" name="

我正在构建一个简单的web应用程序,显示登录用户的各种硬件资产注册。在我的Html页面中,我有一个表,如下所示:

<tbody>
{% for hard in HARDWARE %}
<tr>
    <td>
        <form action="{{url_for('del_hardware', id=hard.id)}}" method="POST">
            <input type="hidden" name="_method" value="DELETE">
            <input type="submit" value="Delete" class="btn btn-danger">
        </form>
    </td>
    <td>{{ hard.name }}</td>
    <td>{{ hard.description }}</td>
    <td>{{ hard.purchased }}</td>
</tr>
</tbody>
{% endfor %}

{%用于硬件中的硬件%}
{{hard.name}
{{hard.description}}
{{hard.purchased}}
{%endfor%}
在application.py文件中,我有以下代码:

@app.route('/del_hardware/<string:id>', methods=["POST"])
@login_required
def del_hardware(id):

    db.execute("UPDATE hardware SET actioned ='D' WHERE id=:hid", hid=id)

    return redirect("/")
@app.route('/del_hardware/',methods=[“POST”])
@需要登录
def del_硬件(id):
execute(“更新硬件集actioned='D',其中id=:hid',hid=id)
返回重定向(“/”)
无论出于何种原因,路由对于表中的第一条记录都不起作用

  • 单击表中第一条记录的删除按钮:

    未显示任何请求,页面将重新加载或重定向到“/”

  • 单击表中其他每一条记录的删除按钮:我得到以下请求

    信息:werkzeug:…[23/Dec/2019 10:31:42]“POST/del_hardware/4HTTP/1.0”302-

    其中4是硬件表中设备的ID,工作正常-SQL 语句被执行,我将按预期重定向到“/”


  • 如果我没有很好地描述这个问题,或者我只是忽略了某个愚蠢的错误,我们将不胜感激,并表示歉意。

    我建议您回过头来,检查一下“硬件”的值,您已经在上面application.py中提供的html呈现模板中传递了该值。打印(硬件)以检查此变量中包含的内容。H,感谢您的及时回复。我已经检查并可以确认正在将正确的值传递到硬件中。表中第一条记录的id是2,当我单击delete按钮时,我需要信息:werkzeug:…[23/Dec/2019 10:31:42]“POST/Delu hardware/2 HTTP/1.0”302,但什么也没有发生。确保HTML有效吗?
    {%endfor%}
    看起来它可以移动一行,并且应该位于
    检查HTML和代码的上方,似乎找不到应用程序无法识别Post请求的原因。。。最奇怪的是,它只影响表中的第一个元素(或行)。我建议您返回一点,检查“硬件”的值,您已经在上面的application.py中提供的html的render_模板中传递了该值。打印(硬件)以检查此变量中包含的内容。H,感谢您的及时回复。我已经检查并可以确认正在将正确的值传递到硬件中。表中第一条记录的id是2,当我单击delete按钮时,我需要信息:werkzeug:…[23/Dec/2019 10:31:42]“POST/Delu hardware/2 HTTP/1.0”302,但什么也没有发生。确保HTML有效吗?
    {%endfor%}
    看起来它可以移动一行,并且应该位于
    检查HTML和代码的上方,似乎找不到应用程序无法识别Post请求的原因。。。最奇怪的是,它只影响表中的第一个元素(或行)。。