作者:mobiledu2502902523 | 来源:互联网 | 2023-05-18 17:32
电气故障后我的网络数据库出现问题
我通过运行程序打开登录页面,但之后,用户名和密码不再被识别
我收到了错误
异常类型: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> Seyeong Jeon..:
来自Django doc:
SQLite意味着是一个轻量级数据库,因此不能支持高级别的并发性.OperationalError:数据库已锁定错误表示您的应用程序正在经历比sqlite在默认配置中可以处理的更多并发性.此错误意味着一个线程或进程对数据库连接具有独占锁定,另一个线程超时等待释放锁定.
Python的SQLite包装器有一个默认的超时值,它确定第二个线程在超时之前允许等待锁的时间长度并引发OperationalError:数据库被锁定错误.
如果您收到此错误,可以通过以下方式解决:
切换到另一个数据库后端.在某个时刻,SQLite对于真实世界的应用程序来说太"精简"了,而这些并发错误表明你已经达到了这一点.
重写代码以减少并发性并确保数据库事务是短暂的.
通过设置timeout database选项来增加默认超时值