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):