Python 从Flask中的数据库中删除元素

Python 从Flask中的数据库中删除元素,python,web,flask,Python,Web,Flask,我想确保我在这里遵循最佳实践。我有一个从数据库中提取的数据表,在最后一列中,我有编辑或删除该行的链接。我觉得我总是被告知永远不要用GET请求修改服务器上的数据。除了GET请求之外,我如何处理删除此数据行? 以下是数据表的代码: <table class="table table-hover notifications"> <thead><tr><th>Search Parameter</th><th>Subreddi

我想确保我在这里遵循最佳实践。我有一个从数据库中提取的数据表,在最后一列中,我有编辑或删除该行的链接。我觉得我总是被告知永远不要用GET请求修改服务器上的数据。除了GET请求之外,我如何处理删除此数据行? 以下是数据表的代码:

<table class="table table-hover notifications">
    <thead><tr><th>Search Parameter</th><th>Subreddits</th><th>Actions</th></thead>
    {% for notification in notifications %}
    <tr>
        <td>{{ notification.q }}</td>
        <td>{% for s in notification.subreddits %} {{ s.r }}<br>  {% endfor %}</td>
        <td><a href="{{ url_for('main.edit_notification', id=notification.id) }}">Edit</a> | <a href="">Delete</a></td>
    </tr>
    {% endfor %}
</table>

搜索参数SubRedditsActions
{%用于通知中的通知%}
{{notification.q}
{%s在notification.subreddits%}{{s.r}}
{%endfor%} | {%endfor%}

我想我不知道如何构建删除的url。我可以构建一个delete方法并传递我想要删除的元素的id(例如:/delete/1),但这不是通过GET请求修改数据吗?

您可以创建一个表单,在提交时发出POST请求,连接到一个视图,该视图在
请求时删除对象。方法
是POST(如您所说,在URL中传递对象id)

我不是烧瓶专家,但举个例子,你的观点应该是这样的:

@app.route('/delete/<int:id>', methods=['POST'])
def remove(id):
    object = Object.query.get_or_404(id)
    delete(object)
    return redirect(url_for('index'))
@app.route('/delete/',方法=['POST'])
def移除(id):
object=object.query.get\u或\u 404(id)
删除(对象)
返回重定向(url_for('index'))
你的表格是:

<form method="post" action="{{ url_for('remove', id=object.id) }}">
  <button type="submit">Delete</button>
</form>

删除

表单
操作
属性强制表单将其信息提交到给定的URL/视图。

您可以创建一个表单,该表单在提交时发出POST请求,并连接到视图,该视图在
请求时删除对象。方法
为POST(如您所说,在URL中传递对象ID)

我不是烧瓶专家,但举个例子,你的观点应该是这样的:

@app.route('/delete/<int:id>', methods=['POST'])
def remove(id):
    object = Object.query.get_or_404(id)
    delete(object)
    return redirect(url_for('index'))
@app.route('/delete/',方法=['POST'])
def移除(id):
object=object.query.get\u或\u 404(id)
删除(对象)
返回重定向(url_for('index'))
你的表格是:

<form method="post" action="{{ url_for('remove', id=object.id) }}">
  <button type="submit">Delete</button>
</form>

删除

表单
操作
属性强制表单将其信息提交到给定的URL/视图。

您可以使用“删除”请求并使用AJAX调用删除API。您可以使用“删除”请求并使用AJAX调用删除API,这是有意义的。它也有双重用途——通过POST处理删除并确认实际删除。我必须查看Django的通用视图。对不起!我刚注意到你实际上用的是烧瓶,不是Django。我做了一些研究并编辑了我的答案以适合我。我希望这会有帮助,这是有道理的。它也有双重用途——通过POST处理删除并确认实际删除。我必须查看Django的通用视图。对不起!我刚注意到你实际上用的是烧瓶,不是Django。我做了一些研究并编辑了我的答案以适合我。我希望有帮助。