【问题标题】:improperly configured database, django+python+postgres数据库配置不正确,django+python+postgres
【发布时间】:2021-07-24 12:33:02
【问题描述】:

我在一个登录页面上工作,它成功了,放弃了这个项目几个月,当我回到它时,我收到了这个错误:

settings.DATABASES 配置不正确。请提供 NAME 值。

完整追溯

Traceback (most recent call last):
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\admin\sites.py", line 410, in login
    return LoginView.as_view(**defaults)(request)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\views\generic\base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\views\decorators\debug.py", line 89, in sensitive_post_parameters_wrapper
    return view(request, *args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\views\decorators\cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\views.py", line 63, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\views\generic\base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\views\generic\edit.py", line 141, in post
    if form.is_valid():
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\forms\forms.py", line 177, in is_valid
    return self.is_bound and not self.errors
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\forms\forms.py", line 172, in errors
    self.full_clean()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\forms\forms.py", line 375, in full_clean
    self._clean_form()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\forms\forms.py", line 402, in _clean_form
    cleaned_data = self.clean()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\forms.py", line 215, in clean
    self.user_cache = authenticate(self.request, username=username, password=password)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\__init__.py", line 73, in authenticate
    user = backend.authenticate(request, **credentials)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\backends.py", line 42, in authenticate
    user = UserModel._default_manager.get_by_natural_key(username)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\contrib\auth\base_user.py", line 45, in get_by_natural_key
    return self.get(**{self.model.USERNAME_FIELD: username})
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 425, in get
    num = len(clone)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 269, in __len__
    self._fetch_all()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 1308, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 53, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\sql\compiler.py", line 1154, in execute_sql
    cursor = self.connection.cursor()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backends\base\base.py", line 259, in cursor
    return self._cursor()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backends\base\base.py", line 235, in _cursor
    self.ensure_connection()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backends\base\base.py", line 219, in ensure_connection
    self.connect()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\utils\asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backends\base\base.py", line 199, in connect
    conn_params = self.get_connection_params()
  File "C:\Users\Zeyad\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\backends\postgresql\base.py", line 157, in get_connection_params
    raise ImproperlyConfigured(

Exception Type: ImproperlyConfigured at /admin/login/
Exception Value: settings.DATABASES is improperly configured. Please supply the NAME value.

我不确定数据库代码有什么问题,所以这里是:

POSTGRES_HOST = os.environ.get('POSTGRES_HOST', default="")
POSTGRES_DB = os.environ.get('POSTGRES_DB', default="")
POSTGRES_USER = os.environ.get('POSTGRES_USER', default="")
POSTGRES_PASSWORD = os.environ.get('POSTGRES_PASSWORD', default="")


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': POSTGRES_DB,
        'USER': POSTGRES_USER,
        'PASSWORD': POSTGRES_PASSWORD,
        'HOST': POSTGRES_HOST,
        'PORT': 5432, 
    }
}

我一直在寻找解决方案超过 2 小时,但由于我已经提供了一个名称,所以我没有找到任何东西,希望有人纠正我的错误

【问题讨论】:

标签: python django database


【解决方案1】:

错误表明您尚未为数据库设置NAME 值。查看您的设置

'NAME': POSTGRES_DB

POSTGRES_DB被定义为

POSTGRES_DB = os.environ.get('POSTGRES_DB', default="")

所以最可能的问题是您没有设置POSTGRES_DB 环境变量。这符合您之前的项目工作的故事,而当您回到它时却没有工作。您正在不同的环境中运行该项目。您需要确保设置了所有必要的环境变量。

【讨论】:

  • 我不确定我知道该怎么做,有任何链接或参考资料可以帮助我吗?
  • 你使用的是什么操作系统?
  • 我的操作系统是 Windows 20H2
  • 我对windows了解不多,但是这里有一篇关于windows上的环境变量的文章。 phoenixnap.com/kb/windows-set-environment-variable这里有一篇博客建议不要使用OS环境变量alicecampkin.medium.com/…
猜你喜欢
  • 2019-09-26
  • 2013-07-02
  • 2016-03-11
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 2012-06-06
  • 2021-03-25
  • 2015-07-29
相关资源
最近更新 更多