如何快速解决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,测试页面

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

相关推荐
南部余额25 分钟前
Python OOP核心技巧:如何正确选择实例方法、类方法和静态方法
开发语言·python
2303_Alpha44 分钟前
深度学习入门:深度学习(完结)
人工智能·笔记·python·深度学习·神经网络·机器学习
Musennn1 小时前
MySQL刷题相关简单语法集合
数据库·mysql
深度学习入门1 小时前
机器学习,深度学习,神经网络,深度神经网络之间有何区别?
人工智能·python·深度学习·神经网络·机器学习·机器学习入门·深度学习算法
Think Spatial 空间思维2 小时前
【HTTPS基础概念与原理】TLS握手过程详解
数据库·网络协议·https
laowangpython2 小时前
MySQL基础面试通关秘籍(附高频考点解析)
数据库·mysql·其他·面试
森哥的歌2 小时前
Python uv包管理器使用指南:从入门到精通
python·开发工具·uv·虚拟环境·包管理
mooyuan天天2 小时前
SQL注入报错“Illegal mix of collations for operation ‘UNION‘”解决办法
数据库·web安全·sql注入·dvwa靶场·sql报错
qq_214782612 小时前
给你的matplotlib images添加scale Bar
python·数据分析·matplotlib
Johny_Zhao2 小时前
Vmware workstation安装部署微软SCCM服务系统
网络·人工智能·python·sql·网络安全·信息安全·微软·云计算·shell·系统运维·sccm