如何快速解决django存储session变量时出现的django.db.utils.DatabaseError错误

我们在学习django进行web编程的时候,有时需要将一些全局变量信息存储在session中,但使用过程中,却发现会引起数据库的报错。通过查看django源码信息,发现其对session信息进行了ORM映射,如果数据库中不存在对应的表信息,将会导致错误。

一、错误信息

我们登录页面中的图形验证码,默认我们后端会将验证码值存储在session中,但我们设置存储验证码信息后,请求登录页面报错:

二、查看源码

我们根据报错信息查看django的源码,打开D:\developerSoft\python\Python39\lib\site-packages\django\contrib\sessions\middleware.py文件,查看第59行代码,发现其对session模型进行了save(需要存储数据到数据库中)。

三、解决问题

我们初步学习先通过把session信息存储到本地文件的方法进行处理(暂时不通过redis等缓存形式处理)。

3.1,添加文件保存路径

我们修改我们工程路径下的settings.py文件,添加如下配置:

python 复制代码
SESSION_ENGINE = 'django.contrib.sessions.backends.file'
SESSION_FILE_PATH = os.path.join(BASE_DIR, '')

3.2,移除session对应的app配置

我们再移除settings.py中对应的application definition对应的session配置:

3.3,测试页面

我们再打开我们的登录页面,发现验证码正常获取到:

相关推荐
65岁退休Coder3 分钟前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain
卷无止境14 分钟前
FastAPI 部署在 Nginx 后面到底该怎么配
后端·python
半亩码田23 分钟前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
老纪的技术唠嗑局38 分钟前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE1 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
Wzx1980121 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
AI大模型-小雄1 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
Python私教1 小时前
签名 URL 刷新导致审批失效?别急着删掉所有 query
python·安全
牧羊人.3331 小时前
Python 办公自动化从入门到入土|09 数据容器之字典
开发语言·python
Zane19942 小时前
类变量与实例变量:一个共享列表引发的线上事故
后端·python