Eclipse中的Django项目布局
有没有什么“最佳实践”或者“推荐的”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 个回答
如果你只打算做一个应用,那就不需要一个专门的应用文件夹。而且,模板文件应该放在 templates/index.html
,因为模板是放在app1的文件夹里的。你不可能在app1的文件夹里放其他应用的模板。
我也不太明白为什么你需要在 src
下面再创建一个项目名称的文件夹……这是不是某种Django的技巧?如果不是的话,我想不出为什么需要这样做。
在Django中,你一定要在模板文件夹里复制应用的名字。
比如说你有两个应用,叫“app1”和“app2”,它们都有一个“index.html”的模板,这时候你就需要在路径中加上应用的名字,以便区分这些模板。
假设你想为“app1”准备一些默认的模板,但又想让用户可以自定义覆盖这些模板,那么你可以把默认模板放在“app1/templates/app1/index.html”这个位置,而用户的自定义模板可以放在“templates/app1/index.html”或者其他地方。
如果文件夹里没有应用的名字,你就可能会遇到模板名称冲突的问题。
你知道吗,其实在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
|