? ? 我們在學習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文件,添加如下配置:
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,測試頁面
? ? 我們再打開我們的登錄頁面,發現驗證碼正常獲取到: