哪种Django模板布局更好?
作者:互联网
哪种布局更好(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
> base_app_index.html扩展了base_app.html-应用程序级别
> base_app.html扩展了base.html-项目级别.
或usable这样(在一个项目的应用之间不能共享)
project/app/templates/app/base_app.html
project/app/templates/app/base_app_index.html
>仅base_app_index.html扩展了base_app.html
参考文献:
从Django Docs开始:
>创建一个base.html模板,其中包含网站的主要外观.
>为网站的每个“部分”创建一个base_SECTIONNAME.html模板.例如,base_news.html,base_sports.html.这些模板都扩展了base.html并包括特定于部分的样式/设计.
>为每种类型的页面(例如新闻文章或博客条目)创建单独的模板.这些模板扩展了相应的节模板.
Location Templates typically live in one of two places, inside the
application or at the root level of a project. We recommend keeping
all your templates in the project template directory unless you plan
on including your application in multiple projects (or developing it
as a open source “reusable” application). In that case, it can be
helpful to ship with a set of sample templates in the application,
allowing it to work out-of-the-box or serving as an example for other
developers.
>每个应用程序都有一个base_.html模板.应用程序级基础模板共享一个公共父级base.html.
>应用程序内的模板共享一个公共父base_.html模板.
>与base.html处于同一级别的任何模板都将继承base.html
解决方法:
这可能取决于您的目的.对于大多数目的,第一个示例将最有效.您的base.html将包含许多特定于站点的内容,您将不想在每个base_app.html模板上重复这些内容.
如果您要制作要与他人共享的可重用应用程序,那么最好使用第二个示例.这样,使用您的应用程序的人就不需要base.html模板来启动和运行您的应用程序.有点“包罗万象”.
这基本上就是那些文档所说的.一般建议是使用第一种方法,除非您将其开源并将其放在PyPi上.
即使您只想让一个包可重复使用仅用于您的使用(即在您正在处理的多个项目中使用),我还是会采用第一种方法.您可以这样做,因此模板目录中始终始终有一个base.html.
标签:django-templates,python,django 来源: https://codeday.me/bug/20191121/2054790.html