【问题标题】:Fixing "settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details."修复“settings.DATABASES 配置不正确。请提供 ENGINE 值。有关详细信息,请查看设置文档。”
【发布时间】:2020-10-07 14:09:21
【问题描述】:

我正在使用 mysql 作为我在 digitalocean 中托管的 django 项目的数据库

python3 manage.py makemigrations
python3 manage.py migrate
creating superuser 

一切正常。但是当我尝试打开我的网站时

错误信息显示为:settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

我检查了所有以前的问题和解决方案,但它们对我没有用..

以下是我的数据库设置。

希望有人可以帮助我。谢谢!它在我的本地主机上运行良好

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'newdb_py',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",  # Strict mode
        },
    }
}

【问题讨论】:

  • 您确定在非本地机器上使用相同的 settings.DATABASES 吗?要检查它,您可以在目标机器中运行 django shell 并通过 from django.conf import settings; print(settings.DATABASES) 检查值
  • @AliAsgari 我测试了命令,我得到了:{'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'newdb_py', 'USER': 'root', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"}, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}} 它的值相同.. 正如我所说.. 我的其他迁移命令工作正常.. 但只是 index.html 模板正在抛出那个错误

标签: mysql django database


【解决方案1】:

我发现了错误,似乎我没有将我在database.py中所做的数据库配置添加到我的settings.py文件中。我应用的方法是错误的。我已将 settings.py 导入到适用于本地计算机的 database.py 中,但不适用于服务器托管。

我通过在 settings.py 文件中添加标题解决了这个问题

from .database import * 

P.S:以上配置是在database.py上完成的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-28
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 2012-04-08
    • 2020-04-24
    • 2013-01-08
    相关资源
    最近更新 更多