2

我知道以前有人问过这个问题,但到目前为止没有一个对我有用,所以我要在这里给它一个机会。

我试图在 django 中使用 MySQL 作为我的数据库,但是当我修改 settings.py 并运行命令时:

  django-admin dbshell

我收到以下错误:

django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES,
but settings are not configured. You must either define the environment
variable DJANGO_SETTINGS_MODULE or call settings.configure()
before accessing settings.

我做了什么: - 我正在运行 Windows 10。

  • 使用 pipenv,我创建了新的虚拟环境。

  • 安装django。

  • 开始新项目。

  • 编辑settings.py

  • 在 settings.py 中,我将 DATABASES 更改为以下内容:

    DATABASES = {
      'default': {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'test_db',
         'USER': 'root',
         'PASSWORD': '****',
         'HOST': '127.0.0.1',
         'PORT': '3306',
        }
    }
    
  • 还 pip 安装了 mysqlclient

奇怪的是,当我进行迁移时,会创建新表,这意味着数据库可以正常工作。为什么命令没有

   django-admin dbshell

工作?

4

1 回答 1

2

基于 django 文档,manage.py 与 django-admin 做同样的事情,并且还添加了设置到 sys 路径,因此应该使用 manage.py 代替 django-admin

https://docs.djangoproject.com/en/2.1/ref/django-admin/

于 2019-01-04T23:12:36.357 回答