Django开发过程中遇到的问题和解决方案

1.django向数据库中添加中文时报错

解决方案:创建数据库的时候设置编码格式

2.django的信号使用无法触发信号里的内容

解决方案:在django 1.7后,使用信号时候需要在应用配置类中的ready() 方法中连接。
所以我们需要配置先ready()
需要在以下两个地方写入配置
需要在项目的app.py,init.py两个文件中写入配置

3.django-admin.py:未找到命令

解决方案:将django的安装路径添加到环境变量中,
一般的安装路径在python目录下的\Lib\site-packages\Django-1.8-py2.7.egg\django\bin,
可能有不同,总之在python安装目录下找到django\bin即可。
添加完环境变量后记得重启命令提示符,否则还是提示错误。

4.当我把 DEBUG = True设为False的时候运行 python manage.py runserver 的时候

报错 : CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
解决方案: 在 setting.py 中添加 ALLOWED_HOSTS = [‘127.0.0.1‘, ‘localhost‘]

5.外部机器无法访问本站点

然后在settings里修改ALLOWED_HOSTS = [],
改为ALLOWED_HOSTS = [‘*’,]

6.django解决跨域请求的问题

解决方案:添加中间件,安装django-cors-headers
配置settings.py文件,添加
MIDDLEWARE_CLASSES = (

‘corsheaders.middleware.CorsMiddleware’,
‘django.middleware.common.CommonMiddleware’, # 注意顺序

)
#跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
‘*’
)
7.安装Mysql,详细教程:https://blog.csdn.net/bobo553443/article/details/81383194
,遇到出现error 1042,无法正常启动解决方案:https://www.jianshu.com/p/de3adc46c8ec
8.django.db.utils.OperationalError: (1049, "Unknown database 'djangodb'")
DATABASES = {

'default': {

'ENGINE':'django.db.backends.mysql',

'NAME': 'mysql',

'USER':'root',

'PASSWORD':'root',

'HOST':'127.0.0.1',

'PORT':'3306',

}

}

出这个问题是因为在setting.py的配置信息NAME配置错误,改为mysql即可。
然后再执行

9.ImportError: cannot import name 'render_to_response' 解决方法
Django 3.0 已经将 render_to_response 移除了。因为有部分代码在用 render_to_response ,而我们打包镜像的时候没有指定 Django 版本,所以启动时报错了。
(1)方法一
安装指定版本的 Django 版本(3.0以下),如:

pip3 install django==2.1.3
(2)方法二
使用 render 代替 render_to_response。

相同点:都是展示模板页面的。

不同点:render 方法可接收三个参数,一是request参数,二是待渲染的html模板文件,三是保存具体数据的字典参数。它的作用就是将数据填充进模板文件,最后把结果返回给浏览器。render 自动使用RequestContext,而 render_to_response 需要 coding 进去。

return render(request,"information.html",{"name":"test","password":"123456"})
return render_to_response("information.html",{"name":"test","password":"123456"},context_instance = RequestContext(request))

10.Django中html里的语法标签{% dosomething %},“%”与"{” 或者"}"之间不能有空格!

11.发生'staticfiles' is not a registered tag library错误,主要是因为:staticfiles is now deprecated and you have to load it as {% load static %} instead of old way {% load static from staticfiles %}

12.ImportError: No module named 'django.core.urlresolvers',Django 2.0 把原来的 django.core.urlresolvers 包改为了 django.urls包,所以需要把原来的from django.core.urlresolvers import reverse 改为 from django.urls import reverse

13.DoesNotExist at /admin/ Site matching query does not exist.
看了
http://stackoverflow.com/questions/6086852/how-to-fix-the-django-sites-table
You don't really need the sites framework if you only run one site from the project, so the easiest fix would be to remove the following item from your INSTALLED_APPS and the error should go away:
'django.contrib.sites'
You can also re-create the missing Site object from shell. Run python manage.py shell and then:
from django.contrib.sites.models import Site
Site.objects.create(pk=1, domain='mdev.5buckchuck.com', name='5buckchuck.com')

posted @ 2020-05-25 13:14  JohnYang819  阅读(993)  评论(0编辑  收藏  举报