python manage.py makemigrations报错 TypeError: object supporting the buffer API required

报错信息如下:

(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类型,修改如下:
修改password
然后再运行 python manage.py makemigrations就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员老五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值