Django项目的结构化

5
我知道每个应用程序文件夹中都应该有一个模板文件夹,但我有两个问题需要进一步澄清。1. 我是否应该在每个应用程序中都有2个相同的base.html文件?这似乎会创建比需要更多的文件... 2. 静态和媒体文件夹呢?我也应该有两个还是它们应该位于项目和应用程序文件夹级别?
如果每个应用程序文件夹中都应该有一个静态文件夹,那么我是否有两个CSS文件?我觉得这没有任何意义,因为CSS可以覆盖从应用程序到应用程序重叠的内容。
我还想知道我当前的设置是否会影响任何东西,或者“最佳实践”只适用于正在与多个人一起工作的项目(而我不是,在这种情况下,我应该关心吗?)
以下是我的当前结构:
/evverest/
    /evverest/
    /feed/
    /users/
    /blog/
    /templates/
        /base/
        /feed/
        /users/
    /static/
        /css/
    /media/
        /post_pics/
        /profile_pics/
1个回答

5
这可能有点令人困惑。我喜欢这样做:
  1. 全局模板应该位于主 templates/ 文件夹中。这应该包括 base.html 和任何其他您要覆盖的其他插件的模板。
  2. 特定于应用程序的模板应该位于应用程序内部自己的 templates/ 文件夹中,例如: blog/templates/blog/blog_index.html。这些模板应该使用 {% extend 'base.html' %} 从而使项目中的所有应用程序都使用相同的基础模板,它在全局模板文件夹中。
  3. 资源应该位于你的 Django 设置中的全局 STATIC_ROOT 文件夹中,我将其称为下面的 assets。我建议只使用一个文件夹以保持简单。
这是一个示例:
./evverest
├── evverest/
├── feed/
│   ├── templates/feed/feed_index.html
│   └── models.py
├── users/
│   ├── templates/users/users_index.html
│   └── models.py
├── templates/
│   └── base.html
├── static/
│   └── css/main.css
└── manage.py

想要了解更多最佳实践,请访问cookiecutter-django。这里有很多需要学习的东西,但他们关注最佳实践,所以这是一个很好的资源。

希望这可以帮到您!


完美,我重新组织了它,它仍然可以工作,所以很好,我只是不确定最好的方法是什么。谢谢。 - Garrett
@Garrett 很高兴能帮忙!我希望你和我一样喜欢使用Django。一旦你掌握了它,它真的很愉快易用。 - Franey
是的,我肯定正在接近目标,到目前为止一切都很棒。 - Garrett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接