2016-08-23 49 views
0

我在烧瓶以下设置:光标实际上没有更新表

@app.route('/restart/<int:id>') 
def feed_info(id): 

    con = sqlite3.connect(database) 
    con.row_factory = sqlite3.Row 
    cur = con.cursor() 

    main_q = "UPDATE feed SET update_flag = 1 WHERE id = {};".format(id) 
    print(main_q) 

    cur.execute(main_q) 

    return "Set to update!" 

然而,即使SQL似乎对自己的工作,它并不实际进行更新时,我称之为瓶的方法。

任何想法?

+2

您需要[提交](https://docs.python.org /2/library/sqlite3.html#sqlite3.Connection.commit) – FamousJameous

+0

你也应该这样做:'cur.close()'和'con.close()'。请参阅我的答案了解更多详情。 –

回答

1

您必须在cur.execute()之后做con.commit()否则您的更改将不会反映在数据库中。

注意:此外,你必须做你的逻辑后cur.close()con.close()关闭数据库连接。因为大多数数据库具有最大连接限制,并且如果不明确关闭连接,它将一直处于活动状态,直到达到它为止connection-timeout

1

那是因为你需要提交。在cur.execute()之后添加con.commit()

+0

辉煌。总是很小。谢谢! – NickP

相关问题