2015-07-03 42 views
0

我正在金字塔中创建一个简单的应用程序。插入数据时,我正在获取数据库锁定错误。 (sqlite3.OperationalError)数据库被锁定[SQL:INSERT INTO users(name,email,number)VALUES(?,?,?)'] [parameters:('test', “[email protected]”,“123654”)]金字塔中的数据库问题+ Sqlalchemy

但是第一次插入数据正确地和第二时间它给这个错误。

任何想法,为什么这种情况正在发生第二次?

这里是我的代码:

name = request.params['name'] 
email = request.params['email'] 
no = request.params['number'] 
DBSession.add(User(name, email, no)) 

# Get the new ID and redirect 
users = DBSession.query(User).all() 

回答

1

的SQLite只能处理1个并发事务。

您是否在尝试commit()之前执行query()然后close()来结束会话?

name = request.params['name'] 
email = request.params['email'] 
no = request.params['number'] 
DBSession.add(User(name, email, no)) 

# Commit the transaction if complete 
DBSession.commit() 

# Get the new ID and redirect 
users = DBSession.query(User).all() 

# Close the session 
DBSession.close() 
+0

一次编辑,它将是'transaction.commit()'而不是'DBSession.commit()'。首先'导入交易' – saf