如何在Django中构建网站?

时间:2011-07-08 12:36:52

标签: django django-templates

我有一个简单的(我希望如此)关于典型Django网站结构的问题。我必须使用一些混合到其他典型静态页面的“Django驱动”页面来重构我的网站。

我想使用这些模板制作一些模板和很多页面。

我的问题是:

为每个页面提供不同内容的最佳方式是什么? 我现在想的是使用相同的模板在我的URL conf中使用不同的页面并修改View中的内容。但是,我认为在视图中“硬编码”我的内容是非常不自然的。

有没有办法在我的模板中定义内容区域,例如,在“管理”面板中编辑它们?

我认为必须有更好的方法。

谢谢!

修改 的 也许Flatpages可以帮助完成我的任务。但是确实存在一种方法来添加与模板特定部分相关的“内容区域”吗?我只能对主要内容区域做好准备。

2 个答案:

答案 0 :(得分:3)

您的“内容区域”与django的模板块有何不同?您可以在布局文件中定义类似的内容:

base.html
{% block overridable %}Default content{% endblock overridable %}

在您的模板中,您可以像这样扩展它:

 view.html
 {% extends "base.html" %}
 {% block overridable %} Overrided by view {% endblock overridable %}

答案 1 :(得分:0)

您可以使用通用视图,我衷心鼓励您。他们很棒。查看django docs for generic views。但是对于需要不同模板的不同页面,是的,这就是网站的工作方式。

Django不是“文件轻” - 它通过组合许多小文件来工作。在视图控制器中反对硬编码HTML是完全正确的 - 这通常是不好的做法。您将为每个视图创建一个模板,但实际上,您有多少视图?即使在大型应用程序中,内置或定制的通用视图无法处理的视图数量也会非常少。