【发布时间】:2018-10-03 07:17:05
【问题描述】:
我正在通过官方文档上的教程学习 django 版本 1.11.4。我正在使用 python 3.6.5 和 mysql8 作为数据库。我还使用 mysql.connector.django 连接到 mysql 数据库。我尝试做第一个 Django 应用,第 2 部分。
This is the link of the example I used
一切正常,除非我运行此命令:
问题.objects.all()
我收到以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/query.py", line 226, in __repr__
data = list(self[:REPR_OUTPUT_SIZE + 1])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/query.py", line 250, in __iter__
self._fetch_all()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/query.py", line 1118, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/query.py", line 62, in __iter__
for row in compiler.results_iter(results):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 839, in results_iter
for rows in results:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1284, in cursor_iter
sentinel):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1283, in <lambda>
for rows in iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)),
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/utils.py", line 101, in inner
return func(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/cursor_cext.py", line 510, in fetchmany
rows.extend(self._cnx.get_rows(size))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/connection_cext.py", line 275, in get_rows
row[i])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/conversion.py", line 205, in to_python
return self._cache_field_types[vtype[1]](value, vtype)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/django/base.py", line 119, in _DATETIME_to_python
dt = MySQLConverter._DATETIME_to_python(self, value)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mysql/connector/conversion.py", line 506, in _DATETIME_to_python
(date_, time_) = value.split(b' ')
AttributeError: 'datetime.datetime' object has no attribute 'split'
模型文件中使用的代码:
import datetime
from django.db import models
from django.utils import timezone
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def was_published_recently(self):
return self.pub_date >= timezone.now() -
datetime.timedelta(days=1)
def __str__(self):
return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
数据库设置:
DATABASES = {
'default': {
'NAME': 'mysite',
'ENGINE': 'mysql.connector.django',
'USER': 'root',
'PASSWORD': '********',
'OPTIONS': {
'autocommit': True,
},
}
}
任何解决此错误的线索或帮助将不胜感激。
【问题讨论】:
-
错误似乎类似于this bug report。 Django 文档警告MySQL connector may not support the most recent releases of Django。您可以尝试使用推荐的包
mysqlclient。 -
我花了大约 2 天时间在 mac 上安装 mysqlclient,但没有成功。这就是我切换到mysql连接器的原因。我尝试了所有可能的解决方案来修复不同的错误,但没有运气。
-
这是我尝试安装 mysqlclient 时无法修复的错误
-
命令 "/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/var/folders/cg/ ttg6lfr17pb005f63_0y7b6r0000gn/T/pip-install-qwt4df54/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace( '\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /private/var/folders /cg/ttg6lfr17pb005f63_0y7b6r0000gn/T/pip-record-apcxyrd9/install-record.txt --single-version-externally-managed --compile"
-
在 /private/var/folders/cg/ttg6lfr17pb005f63_0y7b6r0000gn/T/pip-install-qwt4df54/mysqlclient/ 中出现错误代码 1 失败
标签: mysql django python-3.x