django - 了解目录结构建议

标签 django configuration structure directory-structure

我开始在 Django 示例项目中创建,第一个命令:

django-admin.py startproject 测试

给我:

- root
  - test
    - __init__.py 
    - settings.py 
    - urls.py 
    - wsgi.py 
    - manage.py

现在我创建第一个应用程序:

python manage.py startapp foo

它为我创建了文件夹root/foo

那么我应该如何理解我的 root/test 文件夹。该文件夹用于我的项目的全局配置,仅此而已吗? (类似于 Symfony 2 应用程序文件夹)

我很困惑,因为 Django 文档告诉我:

The inner mysite/ directory is the actual Python package for your project

但是 manage.py startapp foo 在 root 下创建应用程序,而不是在 root/test 下(相当于 mysite)

[编辑]

两个命令:

python manage.py startapp app

和:

django-admin.py startapp app

在项目根目录中为我提供应用程序,而不是在root/name_of_ generated_project

Django 1.4

[编辑]2

对不起,大家,是我的错,现在一切都好了。

[编辑]3

我想再次创建另一个项目:

django-admin.py startproject jobeet

我的初始结构与上面类似。

现在我想尝试创建应用程序(在 jobeet 文件夹内):

django-admin.py startapp 作业

我最终得到的是jobeet/jobs而不是jobeet/jobeet/jobs

再次:/

所以在我的项目根目录中我有:

- jobeet
- jobs
- manage.py

另一个命令:

python manage.py startapp app

给了我相同的结果

最佳答案

假设您创建了一个新的 Django 项目 testproject :

django-admin.py startproject testproject

这将创建一个包含以下最小文件集的新项目:

testproject/
├── __init__.py
├── manage.py
├── settings.py
└── urls.py

为您的第一个网站创建新应用程序mysite1进入testproject目录并运行:

python manage.py startapp mysite1

这会产生一个新目录 mysite1对于mysite1应用程序。

即只需这两个命令,您就会得到这个层次结构:

testproject/
├── __init__.py
├── manage.py
├── mysite1
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── settings.py
└── urls.py

请参阅django-admin.py和/或 manage.py单独命令 here .

在 Django 中,project 之间存在一对多关系。和一个app 。应用程序通常是一个单独的站点组件(例如 commentsratings ),而项目是多个应用程序的组织,可以为许多不同的站点提供支持。这就是为什么您会得到 sites framework 。在实践中,一个项目通常服务于一个网站,但使用 Django sites为了可重用性,您可以通过一个项目为应用程序提供任意数量的网站服务。

附注我认为创建一个名为 test 的项目这不是一个好的做法,因为 Django 单元测试位于 app级别单元测试将进入名为 tests.py 的文件中或者在名为 tests 的文件夹中.

Django 1.4 更新

正如@zeantsoi在下面评论的那样,我的回答:

applies to Django 1.3 and prior. Per the docs, beginning in 1.4, base configuration files (including settings.py, urls.py, and wsgi.py) are abstracted into a subdirectory titled the same name as the project.

关于django - 了解目录结构建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079747/

相关文章:

unit-testing - 默认情况下,单元测试和集成测试使用相同的名称

java - 如何将我的 JAR 库添加到 ubuntu 中的 tomcat7 安装

c++ - 所有按钮都应该包含对 MVC 代码 (C++) 中的 Controller 的引用吗?

c - 为什么结构的数据成员内存在堆栈中从低地址到高地址分配从高到低

c++ - 帮助声明 C++ 结构,并将 float 组作为其成员之一

database - 版本跟踪,使用 django 自动更改数据库模式

python - 如何计算 Django 连接表中的对象数量?

python - Django Rest Framework ViewSet 出现 404 错误

ruby-on-rails - 如何为Rails中的Devise设置 key ?

python - Django celery 击败任务不工作