一: No module named ‘compressor’
1:产生原因:
在django开发时可能用到压缩工具compressor,但是当没有安装django-compressor的时候,会报错:ImportError: No module named compressor
2:解决方法:
通过pip安装compressor
pip install django_compressor
二:Microsoft Visual C++ 14.0 is required
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
1:产生原因
在用pycharm过程中,用pip去安装一些第三方包的时候会出现如下错误,缺少C++编译器,因为有些程序需要使用,没有C++接口会报错
2:解决方法
直接下载对应版本的.whl文件,然后运行pip install xxx.whl进行安装
常用模块的.whl文件的下载地址:Unofficial Windows Binaries for Python Extension Packages
- 按照提示去官网下载Visual Studio
使用Microsoft Visual C++ Build Tools
下载安装地址如下:
链接:https://pan.baidu.com/s/1470eD5Az7ayRz0Vjp6esag
提取码:xzi8
三:mysqlclient 1.3.13 or newer is required; you have 0.9.3
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
1:产生原因
Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql,
2:解决方法
安装pymysql
#安装pymysql
pip install pymysql
在工程文件init.py添加以下代码即可
#__init__.py
import pymysql
pymysql.install_as_MySQLdb()
Step1: 复制地址
Step2:打开base.py,注释如下内容
Step3:
四:TypeError: on_delete must be callable.
解决方法:
更改 on_delete=”CASCADE” 为 on_deldte=models.CASCADE
五:init() got an unexpected keyword argument ‘on_delete’
TypeError: __init__() got an unexpected keyword argument 'on_delete'
1:产生原因
django2.0开始,需要对所有外键models添加on_delete的参数,已确保当该model删除时其关联的外键如何处理。
2:解决方法
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题
from django.db import models
class Hostinfromation(models.Model):
# 定义主机相关信息字段
host_name = models.CharField(max_length=30)
# host_ip = models.GenericIPAddressField(max_length=40)
host_ip=models.CharField(max_length=20)
# 定义主机外键
# 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题
"""
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
models.CASCADE:此值设置,是级联删除。
models.PROTECT:此值设置,是会报完整性错误。
models.SET_NULL:此值设置,会把外键设置为null,前提是允许为null。
models.SET_DEFAULT:此值设置,会把设置为外键的默认值。
models.SET():此值设置,会调用外面的值,可以是一个函数。
一般情况下使用models.CASCADE就可以了。
"""
hostgroup = models.ForeignKey("hostgroup" , on_delete=models.CASCADE)
class Meta:
verbose_name = '主机信息'
verbose_name_plural = '主机信息'
app_label = 'zhylbwg'
def __unicode__(self):
return self.host_name
class hostgroup(models.Model):
name = models.CharField(max_length=20)
class Meta:
app_label = 'zhylbwg'
def __unicode__(self):
return self.name
六:Object of type bytes is not JSON serializable
TypeError: Object of type bytes is not JSON serializable