报错信息如下:
(venv-small_box) jason93@Jason93deMacBook-Pro small_box % python manage.py makemigrations
Traceback (most recent call last):
File "/Users/jason93/Desktop/PythonProject/djangoProject/small_box/manage.py", line 22, in <module>
main()
File "/Users/jason93/Desktop/PythonProject/djangoProject/small_box/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/core/management/base.py", line 85, in wrapped
res = handle_func(*args, **kwargs)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/core/management/commands/makemigrations.py", line 101, in handle
loader.check_consistent_history(connection)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/migrations/loader.py", line 290, in check_consistent_history
applied = recorder.applied_migrations()
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/migrations/recorder.py", line 77, in applied_migrations
if self.has_table():
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/migrations/recorder.py", line 55, in has_table
with self.connection.cursor() as cursor:
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/backends/base/base.py", line 259, in cursor
return self._cursor()
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/backends/base/base.py", line 235, in _cursor
self.ensure_connection()
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
self.connect()
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/backends/base/base.py", line 200, in connect
self.connection = self.get_new_connection(conn_params)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/Users/jason93/Library/Python/3.9/lib/python/site-packages/django/db/backends/mysql/base.py", line 234, in get_new_connection
return Database.connect(**conn_params)
File "/Users/jason93/Desktop/PythonProject/djangoProject/venv-small_box/lib/python3.9/site-packages/pymysql/__init__.py", line 94, in Connect
return Connection(*args, **kwargs)
File "/Users/jason93/Desktop/PythonProject/djangoProject/venv-small_box/lib/python3.9/site-packages/pymysql/connections.py", line 327, in __init__
self.connect()
File "/Users/jason93/Desktop/PythonProject/djangoProject/venv-small_box/lib/python3.9/site-packages/pymysql/connections.py", line 588, in connect
self._request_authentication()
File "/Users/jason93/Desktop/PythonProject/djangoProject/venv-small_box/lib/python3.9/site-packages/pymysql/connections.py", line 815, in _request_authentication
authresp = _auth.scramble_caching_sha2(self.password, self.salt)
File "/Users/jason93/Desktop/PythonProject/djangoProject/venv-small_box/lib/python3.9/site-packages/pymysql/_auth.py", line 257, in scramble_caching_sha2
p1 = hashlib.sha256(password).digest()
TypeError: object supporting the buffer API required
分析:Django和mysql交互时,配置数据库相关信息时可能有问题,检查settings中的DATAVABASE配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'small_box',
'USER': 'root',
'PASSWORD': 12345678,
'HOST': 'localhost',
'PORT': 3306
}
}
问题解决:PASSWORD应该是str类型,此处写了int类型,修改如下:
然后再运行 python manage.py makemigrations就可以了。