HTML表单按钮未从SQLITE数据库删除行



我使用Python和HTML在Pythonanywhere构建了一个论坛,在该论坛中,用户可以将插入SQLite数据库的信息发布。在每个帖子的底部是一个删除按钮,该按钮将删除其在数据库下的帖子并刷新页面。现在,删除按钮仅在帖子保留时会刷新页面。我想知道如何编辑代码,以便删除附加表单按钮的帖子并刷新页面。

html代码段

{% for post in forumposts %}
<tr>
    <td>
    <h1>{{post[1]}}</h1>
    <h3>{{post[3]}}</h3>
    <p>{{post[2]}}</p>
    <p>{{post[6]}}</p>
    <img src="{{post[7]}}" alt="Wrong image link.">
    <p></p>
    <form action="{{ url_for('delete_post') }}" method=POST class=delete-post>
    <input type=hidden value="{{ postid }}"name=post_to_delete></input>
    <input type=submit></input>
    </form>
    </td>
</tr>
    {%endfor%}
</table>

python代码段

@app.route('/delete', methods=['POST'])
def delete_post():
    db = connect_db()
    db.execute('DELETE FROM posts WHERE postid = ?', [request.form['post_to_delete']])
    db.commit()
    db.close()
    return redirect(url_for('forum'))

使代码工作。

html

{% for post in forumposts %}
<tr>
    <td>
    <h1>{{post[1]}}</h1>
    <h3>{{post[3]}}</h3>
    <p>{{post[2]}}</p>
    <p>{{post[6]}}</p>
    <img src="{{post[7]}}" alt="Wrong image link.">
    <p></p>
    <form action="{{ url_for('delete_post') }}" method=POST class=delete-post>
    <input type=hidden value={{post[0]}} name=post_to_delete></input>
    <input type=submit value=POST></input>
    </form>
    </td>
</tr>
    {%endfor%}
</table>

python

@app.route('/delete', methods=['POST'])
def delete_post():
    if request.method == 'POST':
        db = connect_db()
        db.execute('DELETE FROM posts WHERE postid = ?', (request.form['post_to_delete'],))
        db.commit()
        db.close()
        return redirect(url_for('forum'))

希望这对某人有帮助。:(

最新更新