Django + Sqlite:数据库被锁定

时间:2015-03-10 07:56:31

标签: django sqlite

电气故障后我的网络数据库出现问题

我通过运行程序打开登录页面,但之后,用户名和密码不再被识别

我收到错误

异常类型:DatabaseError 价值例外:

数据库被锁定

和我的职能:

def main_page (request):

 state = ""
 username = password = ''
 if request.POST:
     username = request.POST.get ('username')
     password = request.POST.get ('password')

     user = authenticate (username = username, password = password)

问题来自这一行:user = ....

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:8)

来自Django doc

  

SQLite意味着是一个轻量级数据库,因此无法支持   高并发性。 OperationalError:数据库是锁定错误   表明您的应用程序遇到的并发性比   sqlite可以在默认配置中处理。这个错误意味着一个   线程或进程对数据库连接具有独占锁定   另一个线程超时等待锁被释放。

     

Python的SQLite包装器具有确定的默认超时值   允许第二个线程在锁定之前等待多长时间   超时并引发OperationalError:数据库被锁定错误。

     

如果您收到此错误,可以通过以下方式解决:

     
      
  • 切换到另一个数据库后端。在某个时刻,SQLite对于真实世界的应用程序来说变得太“精简”了   并发错误表明你已达到这一点。
  •   
  • 重写代码以减少并发性并确保数据库事务是短暂的。
  •   
  • 通过设置超时数据库选项
  • 来增加默认超时值