gpt4 book ai didi

python - Sqlite删除记录的方法

转载 作者:行者123 更新时间:2023-11-28 22:03:56 24 4
gpt4 key购买 nike

我正在使用 Flask 的教程应用程序学习 Python,但我不知道如何引用数据库中的特定行。我正在尝试使用模板中的删除链接删除一条记录。我花了一整天的时间尝试所有我能找到的东西并真正理解这一点。我知道这很简单,但我不明白!

这是 html 模板:

<ul class=entries>
{% for entry in entries %}
<li><h2>{{ entry.title }}
<h2>{{ entry.text|safe }}</h2>
{% if session.logged_in %}
<a href="{{ url_for('delete_entry') }}">Delete</a>
{% endif %}
{% else %}
{% endfor %}
</ul>

如您所见,每个条目旁边都有一个删除链接。我应该如何引用数据库中的正确 ID?

这是我目前拥有的 Python 函数:

@app.route('/delete')
def delete_entry():
if not session.get('logged_in'):
abort(401)
g.db.execute('delete from entries where id=(select max(id)from entries)')
g.db.commit()
flash('The entry was deleted')
return redirect(url_for('show_entries'))

到目前为止,我所拥有的是有效的,但这不是我想要的。提前致谢!

最佳答案

Sebastien delete_entry 函数正在删除数据库中的最后一个条目

where id=(select max(id)from entries)

您需要做的是在 url 中插入一个用于删除的参数,例如 '/delete/:id',其中 id 是您要删除的条目的 id,然后更改模板以生成 url,如下所示:

<a href="{{ url_for('delete_entry', entry.id) }}">Delete</a>

同时更改删除条目的数据库查询:

g.db.execute('delete from entries where id=' + id)

编辑1:

我检查了 Flask 文档,为了将变量添加到您的路由中,您必须按如下方式修改路由:

@app.route('/delete/<int:entry_id>')

通过这种方式,您可以在 python 函数中获取 entry_id:

def delete_entry(entry_id):
g.db.execute('delete from entries where id=' + entry_id)

最后,您必须在 url_for 函数中指定您的条目 ID:

<a href="{{ url_for('delete_entry', entry_id = entry.id) }}">Delete</a>

关于python - Sqlite删除记录的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7968167/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com