哪种布局更好(Django 1.4 +),:
project/templates/base.html
# project/templates/app/base.html # overriding some_app at project level, optional
project/app/templates/app/base_app.html
project/app/templates/app/base_app_index.html
或usable(一个项目的应用程序之间没有共享)
project/app/templates/app/base_app.html
project/app/templates/app/base_app_index.html
参考文献:
来自Django Docs:
位置模板通常位于两个位置之一,位于 应用程序或项目的根级别。我们建议保留 除非您计划,否则项目模板目录中的所有模板 将您的应用程序包含在多个项目中(或开发它) 作为开源“可重用”应用程序)。在那种情况下,它可以 有助于在应用程序中提供一组示例模板, 允许它开箱即用或作为其他人的榜样 开发者。
答案 0 :(得分:3)
这可能取决于您的目的。对于大多数目的,第一个示例将最有效。您的base.html
将包含很多特定于网站的内容,而您希望在每个base_app.html
模板中重复这些内容。
如果您要创建要与其他人共享的可重用应用程序,那么最好使用第二个示例。这样,使用您的应用的用户就不需要base.html
模板来启动和运行您的应用。它更具有包容性"。
这基本上就是那些文档所说的。一般的建议是使用第一种方法,除非你开源并将它放在PyPi或其它东西上。
即使你想让一个包可以重复使用(即在你正在进行的多个项目中使用),我也会选择第一种方法。您可以这样做,以便在模板目录中始终有base.html
。