我在Python脚本中使用Flask和sqlite3。我有下面的代码,在数据库中插入一个名称并正确写出:
def query_db(query, args=(), one=False):
cur = get_db().execute(query, args)
rv = cur.fetchall()
cur.close()
return (rv[0] if rv else None) if one else rv
@app.route('/addReceiverHandler', methods=['POST', 'GET'])
def addReceiverHandler():
if request.method == 'POST':
title = request.form['title']
query_db("INSERT INTO receivers(name) VALUES(?)", [title])
for receiver in query_db('select * from receivers'):
print receiver[1], 'has the id', receiver[0]
return 'ok'
当我进行插入时,id col会自动递增并且正确的值会被确定。但是,当我第二次运行此脚本时,使用其他名称,就像第一次插入从未存在过,新值与第一次插入时具有相同的ID。我直接从sqlite3终端界面插入了一些行,它们总是被打印出来。怎么了?感觉就像我的脚本中插入的值只是以某种方式临时存储。