Ошибка атрибута: объект ‘NoneType’ не имеет атрибута ‘startswith’ при запуске приложения Django

#python #django

#python #django

Вопрос:

при выполнении команды> python manage.py запустите сервер для запуска приложения

получая приведенную ниже ошибку, нужно ли обновлять какой-либо пакет??

 File "D:venvlibsite-packagesdjangodbbackendsmysqlbase.py", line 201, in get_connection_params
if settings_dict['HOST'].startswith('/'):
AttributeError: 'NoneType' object has no attribute 'startswith'
  

Комментарии:

1. Вы не указали HOST переменную в settings.py базе данных.

2. в нем указано, что я должен указать, если я запускаю его со своего локального хоста ‘: os.getenv(‘MYSQL_HOST’), ‘PORT’: ‘3306’

3. тогда нет MYSQL_HOST переменной среды, поскольку, если переменная не существует, None используется.

Ответ №1:

Вы не установили значение для HOST в:

 # settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'my_db_name',
        'USER': 'my_db_user',
        'PASSWORD': 'my_password',
        'HOST': 'name_of_the_host',
        'PORT': '3306'
    }
}  

Если вы используете переменную среды, необходимо определить переменную среды, поэтому, если вы используете:

 # settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'my_db_name',
        'USER': 'my_db_user',
        'PASSWORD': 'my_password',
        'HOST': os.getenv('MYSQL_HOST'),
        'PORT': '3306'
    }
}  

затем MYSQL_HOST должна быть определена переменная среды. Это не так, os.getenv вернется None , отсюда и ошибка.

Комментарии:

1. в нем указано, что я должен указать, если я запускаю его со своего локального хоста ‘: os.getenv(‘MYSQL_HOST’), ‘PORT’: ‘3306

2. тогда нет MYSQL_HOST переменной среды, поскольку, если переменная не существует, None используется..