这里聚集了一部分最近使用 Django 框架时报的错误,以及原因,后续如果还有,会继续补充,供自己以后查看。
错误一:
django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
原因说明及解决方案:
django 设置的database用户名或者密码错了,修改一下就可以了。
错误二:
django.db.utils.ProgrammingError: (1146, u"Table'' doesn't exist")
原因:
首次创建数据库时,否则表可能还未被创建导致报错,需要迁移数据库表和其他的内容
在命令提示符输入执行
python manage.py makemigrations #同步应用
python manage.py migrate #同步数据库
错误三:
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '192.168.1.101' (timed out)")
错误原因:
因为数据ip指向不对,所以不能连接到数据库,更改setting.py关于数据部分host对应的值修改为能正常使用的地址,例如127.0.0.1
错误四:
css样式未被获取,或者获取到后没有显示
第一步:检查网页(Chrome F12可以看到检查),查看是否正确获取到静态文件地址如下
如果这里是空白的,按Ctrl+R 页面会重新获取数据,然后点击就能看到静态文件路径,是否正确。
如果没有获取到正确链接,请移步。
首先:需要将静态文件放到同级的文件夹下,我这里用templates文件夹放静态网页文件,static 文件夹放置样式和其他内容。
如下图:
首先,将setting.py文件添加如下设置
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
其次,静态文件中有关文件引用如下:
结尾是{% endblock %}
第一行是继承至网页某某,这文件如果存在<!doctype html>,则没一个子文件都会有这一行,导致不能正常显示。
第二行 不重要
第六行 是加载静态文件的意思,必须要。
后面第三个箭头,表示引用静态文件的样式。
第二步:如果是正确的,但是没有样式效果,则考虑是不是静态文件的头部写了<!doctype html>,这行代码,这个会导致django的样式不能正常显示,用其他的写,就需要这一行。
这是被删了后的代码,最终可以正常显示。
错误五:
django 提供了密码加密和解密的功能,自己手动添加到数据库的用户,是不能正常登陆的。
详情见:Django框架之make_password && check_password(下面的链接)
详情见:https://blog.csdn.net/q3102885/article/details/83303415
错误六:
django.urls.exceptions.NoReverseMatch:Reverse for '<WSFIRequest:GET' ' /xxx/xxx/'>' not found.'<WSFIRequest:GET' ' /xxx/xxx/'>' is not a valid view function or pattern name.
这里说这个对应的视图函数不对,这时候就需要检查views.py 中对应的函数有没有错误。
情况一
可能是函数中某个单词打错了,但是又没有检测出来。
情况二
可能是返回方式用错了,这个编辑器也不会检查出来。
直接返回网页内容:
return HttpResponse(response_html)
返回指定视图:
return render(request, 'home.html', {'borads': borad})
重定向到指定视图:
return redirect('board_topics', pk=board.pk)