2016-08-23 80 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

相關問題