我正在尝试配置烧瓶视图以从sqlite3数据库表中删除记录但我收到一些错误,请看下面我编码的内容所以你能告诉我我做错了什么吗?
@app.route('/delete/<int:entry_id>')
def delete_entry(entry_id):
con = sql.connect("database.db")
con.row_factory = sql.Row
cur = con.cursor()
entry_id=int(entry_id)
cur.execute("delete from students where id=?", (entry_id,))
con.commit()
rows = cur.fetchone();
return redirect("http://192.168.1.1:4000/list")
<a href="{{ url_for('delete_entry', entry_id=row['id'] )}}">Delete</a>
答案 0 :(得分:0)
在execute
电话之后,您还需要拨打commit
:
cur.execute("delete from students where id=?", (id,) )
cur.commit()
编辑:您必须创建一个函数参数,以对应于传递给路径的值,并使用相同的名称:
def delete_entry(entry_id):
pass
答案 1 :(得分:0)
我遇到了类似的问题,我在 ()
之后添加了 id= cur.execute("delete from students where id=(?)", (id,) )
以防万一其他人遇到同样的问题,请尝试添加那些 ()
这对我有用。
答案 2 :(得分:0)
略有不同但达到相同的结果:
@app.route('/delete/<id>')
def delete_entry(id):
entry = MyDatabase.query.get(id)
db.session.delete(entry)
db.session.commit()
return redirect(url_for('lists'))
删除链接将是:
<p><a href=" {{ url_for('delete_entry', id=entry.id) }} ">Delete</a></p>