Eclipse中的Django项目布局

2 投票
3 回答
1208 浏览
提问于 2025-04-16 07:08

有没有什么“最佳实践”或者“推荐的”Django项目布局,适合在Eclipse中使用?

在我的Eclipse里,项目结构是这样的:

project name
-src
--project name
---__init__.py
---manage.py
---settings.py
---urls.py
---apps
----app1
-----__init__.py
-----forms.py
-----urls.py
-----views.py
-----templates
------app1
-------index.html

我不太确定我喜欢这个布局,特别是模板文件夹里重复出现的应用名称。我想我这样做是为了让我的网址配置正常工作,但我对Django还不太熟悉,所以这可能是另一个可以改进的地方。

3 个回答

1

如果你只打算做一个应用,那就不需要一个专门的应用文件夹。而且,模板文件应该放在 templates/index.html,因为模板是放在app1的文件夹里的。你不可能在app1的文件夹里放其他应用的模板。

我也不太明白为什么你需要在 src 下面再创建一个项目名称的文件夹……这是不是某种Django的技巧?如果不是的话,我想不出为什么需要这样做。

1

在Django中,你一定要在模板文件夹里复制应用的名字。

比如说你有两个应用,叫“app1”和“app2”,它们都有一个“index.html”的模板,这时候你就需要在路径中加上应用的名字,以便区分这些模板。

假设你想为“app1”准备一些默认的模板,但又想让用户可以自定义覆盖这些模板,那么你可以把默认模板放在“app1/templates/app1/index.html”这个位置,而用户的自定义模板可以放在“templates/app1/index.html”或者其他地方。

如果文件夹里没有应用的名字,你就可能会遇到模板名称冲突的问题。

2

你知道吗,其实在Eclipse里创建Django项目的时候,可以不需要src文件夹,这样会显得更整洁。要做到这一点,当你想创建一个新的Django项目时,在底部会有一个小框让你输入项目名称,你可以把创建默认的 "src" ...这个选项关掉。

而且我觉得把所有的Django应用都放在一起并不是个好主意。你可以把相关的应用放在同一个文件夹里,但不需要把所有的应用都放在一起。至于模板,你可以选择在和settings.py同一级别放一个模板目录,这样就能和你的应用保持相同的结构,或者在每个应用里放一个模板目录,但我更喜欢第一种方式,像这样:

project_name
  |
  | --- manage.py
  |
  | --- settings.py
  |
  | --- template
          |
          | -- index.html
          |
          | -- base.html
          |
          | -- 404.html
          | 
          | -- conection_app
          |         | 
                    | -- login.html
  |
  |
  | --- connection_app
          |
          | -- login
                 |
                 | -- view.py
  |
  |
  | --- finance_app 
  |        

撰写回答