Django常见问题及解决方法
一、ModuleNotFoundError: No module named 'django'解决办法
给项目安装Django模块
二、File "manage.py", line 17 ) from exc ^ 解决办法
是因为Python是2.*导致的,需要使用Python3
三、创建Django项目
django-admin startproject 项目名
四、-bash: django-admin: command not found解决办法
find / -name django-admin -print
ln -s 路径 /usr/bin/django-admin
五、在Django项目下创建应用
django-admin startapp 应用名
六、Django如何调用静态资源
修改settings.py配置静态资源
七、配置static后图片不显示的解决办法
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import staticfiles
urlpatterns += staticfiles_urlpatterns()
八、django.db.utils.NotSupportedError: SQLite 3.2x or later is required (found 3.2y.0)的解决办法
原因:未安装SQLite或SQLite版本较低,可通过命令:sqlite3 --version查看sqlite版
九、如何安装SQLite
安装sqlite命令:yum install sqlite
十、如何升级SQLite
1. 下载和解压
wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
tar -zxvf sqlite-autoconf-3290000.tar.gz
2. 安装
cd sqlite-autoconf-3290000
./configure --prefix=/usr/local/sqlite
make && make install
3. 检查最新安装的版本
/usr/local/sqlite/bin/sqlite3 --version
4. 删除用过的文件
rm -rf sqlite-autoconf-3290000*
5. 备份旧的sqlite3
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
6. 软链接将新的sqlite3设置到/usr/bin目录下
ln -s /usr/local/sqlite/bin/sqlite3 /usr/bin/sqlite3
7. 查看当前全局sqlite3的版本
sqlite3 --version
8. 配置lib库(重要)
创建/ect/ld.so.conf.d/sqlite3文件,内容为:/usr/local/sqlite/lib
执行ldconfig
十一、升级sqlite后,(虚拟机)仍然提示sqlite版本低
1. 通过rpm -qa | grep sqlite发现了多个3.2y版本
2. 使用yum remove sqlite卸载后,发现还有一个:
sqlite-libs-3.2y.0-18.el8.x86_64
3. 使用yum remove sqlite-lib*继续卸载,提示The operation would result in removing the following protected packages
翻译成中文意思是:操作将导致删除以下受保护的包。(慎重)
4. rpm -e sqlite-libs-3.2y.0-18.el8.x86_64 --nodeps 卸载成功。
删除后发现网站彻底不打开了,查看日志发现找不到libsqlite3.so文件。
5. 最后找到原因,在升级sqlite时忘了配置lib库。
十二、django设置管理员
python manage.py migrate
python manage.py createsuperuser
十三、django admin模板目录
/lib/python3.10/site-packages/django/contrib/admin/templates/admin
十四、django登录跨域问题
CSRF_TRUSTED_ORIGINS = ['http://my.zhijiaoshe.cn',]