chan

朝生暮死不足笑 但悲百年不足道

【Django】从Mysql数据库到SQLite|TypeError: argument of type ‘WindowsPath’ is not iterable


背景:想做个系统,再原先的基础上做点修改就行

1.原先的系统是Mysql,现在转为SQLite

2.原先的特定配置依赖写在requirements.txt中,现在使用PyCharm是直接加载进去使用的本地Python3.10的环境

—————————————————————————————————–

致使出现以下错误

尽管我已经注释了setting.py中关于Mysql的部分

这有多方面的原因,其中可能是有关于Mysql的驱动,即mysqlclient没有删除

于是,首先,重新生成虚拟环境,保持环境的独立

——————————————————————

1.安装virtualenv
pip3 install virtualenv

2.创建具体的虚拟环境实例
virtualenv ./envs –python=python3.9

3.在pycharm的右下角,设置使用创建的虚拟环境下的python解释器

4.一般需要重新启动项目,才会进入虚拟环境中,所以重启

重启pycharm后,如下图所示

5.安装依赖

pip3 install -r requirements.txt

6.启动项目并访问

——————————————————————————-

报了莫名其妙的错误

访问页面的bootstrap样式貌似也没加载出来,图片也是裂开的

—————————————————-

一时半会没头绪,猜想会不会是数据库没有迁移导致,但是感觉这个前端页面的展示,应该跟数据库没关系吧。还是来试试看吧

python manage.py makemigrations

报错,如上图所示

TypeError: argument of type ‘WindowsPath’ is not iterable 可迭代

GPT告诉我做如下操作

再次迁移,结果如下

再次访问

至少验证码出来了

至于这个页面样式这么丑,好像是jquery和bootstrap没发挥作用,而此情此景,恰如彼时彼刻,emm,我遇到过类似的,但是记不得是怎么解决的了。额!!!

找到了,当时是使用docker构建镜像的问题http://www.chan.ink/index.php/2024/10/29/%e8%ae%b0%e5%bd%95%e4%b8%80%e6%ac%a1%e6%9e%84%e5%bb%badjango%e9%95%9c%e5%83%8f%e7%9a%84%e9%94%99%e8%af%af%e4%b9%8b%e4%ba%8c/

不过我的问题跟他不一样,因为我是在pycharm中本地开发,而上次遇到的问题是线上部署时,nginx的配置错误。

————————————————————————————————————-

通过日志可以看到,时bootstrap文件被重定向了,也就是没找到的意思好像

看起来像是权限验证码问题,可能涉及中间件,也可能是定位文件没找到,亦或是的确没有文件

发现的确没有对应的bootstrap,找到后加入进去

不过结果还是一样的302重定向,登录界面,还是一样的丑。没区别。

查看setting文件,看到关于静态文件的配置如下

按照GPT,修改为如下后,就可以了

结果如下

关于静态文件的相关更深入的了解,查看这个

【Django】静态文件路径问题

评论
还没有评论
    发表评论 说点什么