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

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

相关推荐
2401_8414956414 分钟前
【计算机视觉】分水岭实现医学诊断
图像处理·人工智能·python·算法·计算机视觉·分水岭算法·医学ct图像分割
m0_7415853527 分钟前
网站框架
数据库
编程充电站pro1 小时前
SQL 子查询与多表 JOIN 用法大全(速查版)
数据库·sql
Dersun1 小时前
mysql数据库学习之常用函数(五)
数据库·sql·学习·mysql·ai编程
TDengine (老段)2 小时前
TDengine 时序函数 MAVG 用户手册
大数据·数据库·物联网·性能优化·时序数据库·iot·tdengine
hqwest2 小时前
QT肝8天16--加载动态菜单
开发语言·数据库·qt·ui·sqlite
数据知道3 小时前
Go基础:用Go语言操作MySQL详解
开发语言·数据库·后端·mysql·golang·go语言
毕设源码-赖学姐3 小时前
【开题答辩全过程】以 Python在浙江省人口流动数据分析与城市规划建议的应用为例,包含答辩的问题和答案
开发语言·python·数据分析
qq_7391753693 小时前
Android Studio 实现四则运算+开方+倒数简易计算器
android·python·android studio
krielwus4 小时前
Oracle 11g R2 物理冷备
数据库·oracle