【问题标题】:Django setting.py errorDjango setting.py 错误
【发布时间】:2012-05-15 22:53:29
【问题描述】:

我有以下代码和以下设置。但是我的设置总是出错... MySQL 版本是 5,Django 是最后一个版本。 Python 3.7

#!/usr/bin/env python
import os
import sys
sys.path.append("/home/test")


if __name__ == "__main__":
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "standAlone.myScript")
     from django.core.management import execute_from_command_line
     execute_from_command_line(sys.argv)

这是我的脚本:

# settings.py
from django.conf import settings


#settings.configure(
    DATABASE_ENGINE    = " ",
    DATABASE_NAME      = " ",
    DATABASE_USER      = " ",
    DATABASE_PASSWORD  = " ",
    DATABASE_HOST      = " ",
    DATABASE_PORT      = " ",
   # INSTALLED_APPS     = ("myApp")
)

from django.db import models
from myApp.models import *

这是我的 settings.py:

DATABASE_ENGINE    = 'django.db.backends.mysql'
DATABASE_NAME      = 'DATABASE_NAME'
DATABASE_USER      = '****'
DATABASE_PASSWORD  = '****'
DATABASE_HOST      = '127.0.0.1'
DATABASE_PORT      = '3306'

我有以下错误:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/test/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/home/test/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/test/django/core/management/__init__.py", line 252, in fetch_command
    app_name = get_commands()[subcommand]
  File "/home/test/django/core/management/__init__.py", line 101, in get_commands
    apps = settings.INSTALLED_APPS
  File "/home/test/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/home/test/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/test/django/conf/__init__.py", line 93, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/home/test/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/test/standAlone/myScript.py", line 6
    DATABASE_ENGINE    = "django.db.backends.mysql",
    ^

【问题讨论】:

  • 您使用的是哪个版本的 django?你说的是最新的,你是指最新的官方版本(1.4)还是你使用的是git仓库中的1.5实验代码?
  • Aslo,我假设您的意思是 Python 2.7,因为 3.7 不存在?您可能需要更正它。
  • 您巧妙地未能引用实际的异常。我猜是IndentationError
  • 如果您使用的是最新版本的 Django,您显然需要阅读文档。这甚至不再是您指定数据库的方式。 docs.djangoproject.com/en/1.4/ref/settings/#databases

标签: python mysql django orm


【解决方案1】:

在 myScript.py 的第 5 行中,您有一个 #,它会输出一行。然后,我认为第 6 行 DATABASE_ENGINE = " ", 将是一个语法错误(尽管回溯似乎不包括这一点)。

还有其他问题。导入内容的方式将导致 settings.py 数据库设置被 myScript.py 中第 5 行以后的空值覆盖。除非这是您想要的,否则执行此操作的正确方法(在 myScript.py 中)是:

# settings.py
from django.conf import settings

from django.db import models
from myApp.models import *

即在settings.py中指定设置,不要在myScript.py中覆盖。

如果您出于某种原因确实需要覆盖这些设置,那么只需删除第 5 行的 #,就可以了。

下次请尝试自己解决语法错误,会比posting to stack overflow快很多。

【讨论】:

    猜你喜欢
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2015-06-15
    相关资源
    最近更新 更多