django TypeError:DatabaseWrapper.display_name()接受0个位置参数,但给出了1个

eagi6jfj  于 2023-11-20  发布在  Go
关注(0)|答案(2)|浏览(154)

我在cpanel终端运行“python manage.py migrate”时出现以下错误。我使用mysql作为数据库。我使用的库是mysql-connector-python。

TypeError: DatabaseWrapper.display_name() takes 0 positional arguments but 1 was given

字符串
以下是我的设置文件的设置:

DATABASES = {
    "default": {
        "ENGINE": "mysql.connector.django",
        "NAME": "my-database-name",
        "HOST": "localhost",
        "PORT": "3306",
        "USER": "my-database-username",
        "PASSWORD": "my-password",
    }
}

hgqdbh6s

hgqdbh6s1#

我猜你用的是虚拟环境。用pymysql吧,对我很有效。

pip install pymysql

字符串
首先,像这样用数据库配置settings.py

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': BASE_DIR / 'db.sqlite3',
},
'product': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'djangoStorage',
    'USER': 'root',
    'PASSWORD': '',
    'HOST': 'localhost',
    'PORT': 3306
}


}
在manage.py和wsgi.py的顶部

import os
import sys
import pymysql
pymysql.install_as_MySQLdb()


最后,

python manage.py makemigrations
python manage.py migrate --database:product

ar7v8xwq

ar7v8xwq2#

代码应该这样

DATABASES = {
    "default": {
        "ENGINE": "mysql.connector.django",
        "NAME": "my-database-name",
        "HOST": "localhost",
        "PORT": "3306",
        "USER": "my-database-username",
        "PASSWORD": "my-password",
         'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'" ,"use_pure": True},
          
    }
}

字符串

相关问题