django开发时遇到的bug 及 解决方法

 

bug1:pymysql.err.InternalError: (1366, "Incorrect string value:

执行以下命令时,会出现错误:

python manage.py migrate

错误:pymysql.err.InternalError: (1366, "Incorrect string value:' for column 'name' at row 1")

主要是由数据库编码造成的。

解决方法:

假定创建的数据库为myblog。

1. 删除原有的数据库。

drop database myblog;

2. 创建新数据库(主要是设置字符集):

CREATE DATABASE myblog CHARACTER SET utf8;

查看编码:

show variables like 'character%';

database的编码被改为了utf8(原来为latin1).

问题解决,在执行如下命令就不会出异常了:

python manage.py migrate

 

 

bug2:Error loading MySQLdb module: No module named MySQLdb

  File "C:\webPro\env\lib\site-packages\django\db\backends\mysql\base.py", line 27, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

首先查看pip是否安装了pymysql,如果没有,使用pip安装:

pip install pymysql

再运行,还是同样的错误。

在项目的 __init__.py 文件中添加以下代码即可。

import pymysql
pymysql.install_as_MySQLdb()

 

 

bug3:NotImplementedError: compress and named_pipe arguments are not supported

 File "C:\webPro\env\lib\site-packages\pymysql\connections.py", line 204, in __init__
    raise NotImplementedError("compress and named_pipe arguments are not supported")
NotImplementedError: compress and named_pipe arguments are not supported

注释掉lib\site-packages\pymysql\connections.py文件中的两句:

if compress or named_pipe:
    raise NotImplementedError("compress and named_pipe arguments are not supported")

看注释,本身compress和named_pipe就不支持,注释掉也没所谓。

    :param compress: Not supported
    :param named_pipe: Not supported

 

bug4:django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).


可以通过如下方法解决:注释掉抛出异常的语句。

查找django安装目录(根据你的python环境来找):

cd /
find -name django


然后发现相关目录:

./usr/local/lib/python3.6/site-packages/django
./usr/local/lib/python3.6/site-packages/django/forms/jinja2/django
./usr/local/lib/python3.6/site-packages/django/forms/templates/django


修改sqlite的base.py:

vi /usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py
注释掉抛出异常语句(然后提示expected an indented block,所有随便加了一条语句,构成一个block):

 

 

 

 

 

 

 

 

 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值