【问题标题】:django directory layout explanationdjango目录布局说明
【发布时间】:2009-06-25 14:12:33
【问题描述】:

所以我刚刚创建了一个名为“coolprojectsite”的 django 项目,目录结构如下所示:

* media (dir)
* mytemplates (dir)
* * admin (dir)
* * coolprojects (dir)
* coolprojectsite (dir)
* * coolproject (dir)
* * * __init__.py
* * * admin.py
* * * models.py
* * * tests.py
* * * urls.py
* * * views.py
* * __init__.py
* * settings.py
* * urls.py

所以我有几个问题。

1) coolprojectsite 是否被视为“项目”

2)coolproject 是否被视为“应用程序”

3) 'media' 包含 css、javascript 文件等。这是适合它们的地方吗?它在项目之外。

4) 'mytemplates' 具有包含 django 标记的特定文件(例如 {% %} )并且它们被访问是因为我的 urls.py 指向它们。将这些文件放在项目之外是否合适?

5) 如果我想包含一些任意的 javascript 文件(比如 jquery),我是否只需在 urls.py 中创建一个新条目(如果是,它应该是 coolprojectsite 或 coolproject 中的那个)然后链接到该 url ?

【问题讨论】:

  • 问题。你不会把 media/ 和 CSS 等放在 webroot 和所有其他下面吗?

标签: django


【解决方案1】:
  1. “项目”在 Django 中并不是一个真正有用的概念。 Django 教程中提到了它,但开发人员经常在邮件列表中提到他们希望没有引入它。基本上,项目只是代码的容器——但实际上代码可以存在于 Pythonpath 上的任何位置。

  2. 是的,您可以拥有多个应用程序,只要将它们都添加到 settings.py 中的 INSTALLED_APPS 即可。

  3. 他们住在哪里并不重要。您将需要一些东西来为它们提供服务 - 在开发中,可以使用内置服务器来完成,但在生产中,您需要将 Apache(或其他)直接指向文件。

  4. 没关系。加载模板的是视图,只要在 settings.py 中正确设置了 TEMPLATE_DIRS 就可以了。

  5. 不,绝对不是。如前所述,静态资产位于您的媒体文件夹中,不通过 Django 提供。

【讨论】:

  • 就个人而言,我确实发现“项目”是一个有用的概念。毕竟,项目是我通常从事的工作——这就是可交付成果。所以我将我的静态资产目录和我的模板目录保存在一个包含设置文件、根 URLconf、通常是一些一次性项目特定应用程序的目录中,将它们全部置于版本控制之下并称之为“项目”。我不认为这有什么问题。关键是要意识到 Django 中没有关于某个目录的“魔法”,您可以根据自己的工作流程进行安排并使其正常工作。
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
相关资源
最近更新 更多