我已经使用了Django 1.3一段时间了,现在我的系统自动将django更新为1.4,我遇到了设置文件的问题。
问题1:
我用命令django-admin.py startproject tutorial
创建了新项目
Django自动在教程项目中创建教程应用程序。我不想要教程应用程序,所以我删除了它,现在当我启动开发服务器时,这里出现错误:
raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'tutorial.settings' (Is it on sys.path?): No module named tutorial.settings
问题2: 我曾经在项目的根目录(1.3)中有一个中央设置文件,但现在看来,如果我创建了另一个应用程序,django甚至都不会看它。例如,在上一个问题中,如果我不知道删除教程应用程序,django只会查看该应用程序的设置文件并抱怨如果我在启动开发服务器之前没有设置数据库信息。如果是这样的话,如果我有3个应用程序,我真的需要每个他们用数据库信息填充单独的设置文件?
答案 0 :(得分:4)
Django 1.4改变了Django项目的文件系统布局。您看到的教程“app”不是应用程序,而是项目包。有关详细信息,请参阅tutorial。
答案 1 :(得分:3)
Django 1.4项目结构发生了变化 - 变得更好。它现在更加模块化。内部添加的“tutorial”目录是您的项目目录。它包含特定于您的项目的settings.py,urls.py等。应用程序现在与项目并行添加(在主目录中,与“教程”项目目录处于同一级别)。这允许他们通过您的项目和应用程序仅作为应用程序导入,即from some_app.models import SomeModel
,而不是myproject.some_app.models import SomeModel
。这样做的好处是显而易见的。您的应用不再与特定项目相关联。您可以按原样将其删除,将其打包以进行重新分发,或者在完全不同的项目中使用它,而无需进行大量更改,从而删除依赖项。保持新的项目结构并学会喜欢它。