一: No module named ‘compressor’

1:产生原因:

在django开发时可能用到压缩工具compressor,但是当没有安装django-compressor的时候,会报错:ImportError: No module named compressor

2:解决方法:

  • 通过pip安装compressor

    1. pip install django_compressor

    二:Microsoft Visual C++ 14.0 is required

    1. 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
    图片.png

    三:mysqlclient 1.3.13 or newer is required; you have 0.9.3

    1. 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

    1. #安装pymysql
    2. pip install pymysql
  • 在工程文件init.py添加以下代码即可

    1. #__init__.py
    2. import pymysql
    3. pymysql.install_as_MySQLdb()

    Step1: 复制地址

    图片.png

    Step2:打开base.py,注释如下内容

    图片.png

    Step3:

    四:TypeError: on_delete must be callable.

    解决方法:

    更改 on_delete=”CASCADE” 为 on_deldte=models.CASCADE
    图片.png

五:init() got an unexpected keyword argument ‘on_delete’

  1. TypeError: __init__() got an unexpected keyword argument 'on_delete'

图片.png

1:产生原因

django2.0开始,需要对所有外键models添加on_delete的参数,已确保当该model删除时其关联的外键如何处理。

2:解决方法

在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题

  1. from django.db import models
  2. class Hostinfromation(models.Model):
  3. # 定义主机相关信息字段
  4. host_name = models.CharField(max_length=30)
  5. # host_ip = models.GenericIPAddressField(max_length=40)
  6. host_ip=models.CharField(max_length=20)
  7. # 定义主机外键
  8. # 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题
  9. """
  10. on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
  11. models.CASCADE:此值设置,是级联删除。
  12. models.PROTECT:此值设置,是会报完整性错误。
  13. models.SET_NULL:此值设置,会把外键设置为null,前提是允许为null。
  14. models.SET_DEFAULT:此值设置,会把设置为外键的默认值。
  15. models.SET():此值设置,会调用外面的值,可以是一个函数。
  16. 一般情况下使用models.CASCADE就可以了。
  17. """
  18. hostgroup = models.ForeignKey("hostgroup" , on_delete=models.CASCADE)
  19. class Meta:
  20. verbose_name = '主机信息'
  21. verbose_name_plural = '主机信息'
  22. app_label = 'zhylbwg'
  23. def __unicode__(self):
  24. return self.host_name
  25. class hostgroup(models.Model):
  26. name = models.CharField(max_length=20)
  27. class Meta:
  28. app_label = 'zhylbwg'
  29. def __unicode__(self):
  30. return self.name

六:Object of type bytes is not JSON serializable

TypeError: Object of type bytes is not JSON serializable
image.png

1:产生原因

2:解决办法