电气故障后我的网络数据库出现问题
我通过运行程序打开登录页面,但之后,用户名和密码不再被识别
我收到错误
异常类型: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 = ....
我该如何解决这个问题?
答案 0 :(得分:8)
来自Django doc:
SQLite意味着是一个轻量级数据库,因此无法支持 高并发性。 OperationalError:数据库是锁定错误 表明您的应用程序遇到的并发性比 sqlite可以在默认配置中处理。这个错误意味着一个 线程或进程对数据库连接具有独占锁定 另一个线程超时等待锁被释放。
Python的SQLite包装器具有确定的默认超时值 允许第二个线程在锁定之前等待多长时间 超时并引发OperationalError:数据库被锁定错误。
如果您收到此错误,可以通过以下方式解决:
- 切换到另一个数据库后端。在某个时刻,SQLite对于真实世界的应用程序来说变得太“精简”了 并发错误表明你已达到这一点。
- 重写代码以减少并发性并确保数据库事务是短暂的。
- 通过设置超时数据库选项
来增加默认超时值