【问题标题】:Requested setting DATABASES, but settings are not configured error in my Django project请求设置数据库,但在我的 Django 项目中未配置设置错误
【发布时间】:2018-02-19 03:42:06
【问题描述】:

我正在尝试将 django 项目中的数据库设置从 sqlite3 更改为 mysql。

我在我的 settings.py 文件中编辑了数据库对象:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'Identity',
        'USER' : 'root',
        'PASSWORD': ''
    }
}

我运行了 django-admin dbshel​​l 并得到了这个错误:

文件 "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/conf/init.py", 第 39 行,在 _setup 中 % (desc, ENVIRONMENT_VARIABLE)) django.core.exceptions.ImproperlyConfigured:请求的设置 数据库,但未配置设置。您必须定义 环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure() 在访问设置之前。

我遵循了answer to use settings.configure()的指示

from django.conf import settings
settings.configure()

它返回了这条消息:

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/conf/init.py", 第 63 行,在配置中 raise RuntimeError('设置已配置。') RuntimeError: 设置已配置。

当我运行python3 manage.py shell 时,它给了我这个错误:

文件 "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/db/backends/mysql/base.py", 第 28 行,在 raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb 模块:没有名为“MySQLdb”的模块

我想要做的就是使用 mySql 而不是 sqlite db。

我该怎么做?

【问题讨论】:

    标签: mysql django python-3.x sqlite


    【解决方案1】:

    似乎缺少 MySQLdb 包, 你能检查一下这个包是否安装了吗

    apt-get 安装 mysql-server

    apt-get 安装 mysql-client

    apt-get install libmysqlclient-dev

    在你的虚拟环境中,安装mysql客户端

    pip 安装 mysqlclient

    然后在settings.py

    中进行mysql配置
       DATABASES = {
          'default': {
          'ENGINE': 'django.db.backends.mysql',
          'NAME': 'test_db',#database name
          'HOST': '127.0.0.1',#
          'PORT': '3306',#mysql port
          'USER': 'root',#mysql username
          'PASSWORD': 'test123',#mysql password
           'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4',
             }
         }
      }
    

    【讨论】:

      猜你喜欢
      • 2014-02-13
      • 2020-03-07
      • 2020-09-27
      • 2017-10-21
      • 1970-01-01
      • 2020-08-25
      • 2018-05-21
      • 2020-04-12
      • 2013-03-22
      相关资源
      最近更新 更多