Django 在模板中调用小应用程序

Django 在模板中调用小应用程序,django,django-templates,views,Django,Django Templates,Views,假设我有一个网站,上面有一个小应用程序,列出了10个最新成员,或者类似的动态内容。我希望在每一页上都能看到它,也许是在侧边栏中。我该怎么做呢 我对这件事的看法。我可能还没有完全了解django的内容,但是当我有一个像/foo/这样的url调用一个视图栏时,我需要从这个视图向模板发送什么信息呢。是否每个视图都必须将信息发送到模板(以便我可以查看我的应用程序),或者是否有办法从模板调用此信息 我试图通读文档,但似乎我就是不明白这一点 “是否每个视图都必须将信息发送到模板(以便我可以查看我的应用程序)

假设我有一个网站,上面有一个小应用程序,列出了10个最新成员,或者类似的动态内容。我希望在每一页上都能看到它,也许是在侧边栏中。我该怎么做呢

我对这件事的看法。我可能还没有完全了解django的内容,但是当我有一个像/foo/这样的url调用一个视图栏时,我需要从这个视图向模板发送什么信息呢。是否每个视图都必须将信息发送到模板(以便我可以查看我的应用程序),或者是否有办法从模板调用此信息

我试图通读文档,但似乎我就是不明白这一点

“是否每个视图都必须将信息发送到模板(以便我可以查看我的应用程序)”

“是否有办法从模板中调用此项。”

没有

您的视图只是函数。函数可以调用其他函数。这是普通的好设计。您仍然可以在Django中进行普通的优秀设计

您确实有能力提供“上下文”。这仍然是在视图中完成的,以便为模板提供额外的“上下文”。有关编写自己的上下文处理器的信息,请参阅

除了将视图提供的对象呈现为HTML(或XML)之外,模板中什么也没做(几乎什么都没做)


如果你有一个页面,它是许多小应用程序的合并,那么你有两层应用程序

  • 独立应用程序

  • 依赖复合或独立应用程序的复合应用程序

您的复合应用程序可以调用其他应用程序视图功能来收集数据

您的复合应用程序模板可以包含其他应用程序模板元素以显示该数据

您拥有Python的所有功能,可以将独立的应用程序分解为“数据生成”函数、视图函数、模板组件和最终页面模板

独立的应用程序页面将使用查看功能和模板。查看功能将使用数据生成功能。模板将使用模板组件

分解仍然有效,即使在Django中也是如此。

“是否每个视图都必须将信息发送到模板(以便我可以查看我的应用程序)”

“是否有办法从模板中调用此项。”

没有

您的视图只是函数。函数可以调用其他函数。这是普通的好设计。您仍然可以在Django中进行普通的优秀设计

您确实有能力提供“上下文”。这仍然是在视图中完成的,以便为模板提供额外的“上下文”。有关编写自己的上下文处理器的信息,请参阅

除了将视图提供的对象呈现为HTML(或XML)之外,模板中什么也没做(几乎什么都没做)


如果你有一个页面,它是许多小应用程序的合并,那么你有两层应用程序

  • 独立应用程序

  • 依赖复合或独立应用程序的复合应用程序

您的复合应用程序可以调用其他应用程序视图功能来收集数据

您的复合应用程序模板可以包含其他应用程序模板元素以显示该数据

您拥有Python的所有功能,可以将独立的应用程序分解为“数据生成”函数、视图函数、模板组件和最终页面模板

独立的应用程序页面将使用查看功能和模板。查看功能将使用数据生成功能。模板将使用模板组件

即使在Django,分解仍然有效

  • 创建可在页面上调用的模板标记
  • 创建一个上下文处理器,并在每个页面加载上注入额外的上下文变量
  • 我相信还有其他方法可以做到这一点,但这可能是最符合逻辑的两种方法。第一种方法提供了更大的功能,并将浪费更少的处理时间(对于您不想显示数据的页面),但上下文处理器编写起来要简单得多(您不必为了取悦模板而向后弯腰)

    这两件事都是很有价值的,所以你就去吧。去学习吧

  • 创建可在页面上调用的模板标记
  • 创建一个上下文处理器,并在每个页面加载上注入额外的上下文变量
  • 我相信还有其他方法可以做到这一点,但这可能是最符合逻辑的两种方法。第一种方法提供了更大的功能,并将浪费更少的处理时间(对于您不想显示数据的页面),但上下文处理器编写起来要简单得多(您不必为了取悦模板而向后弯腰)


    这两件事都是很有价值的,所以你就去吧。去学习吧

    从其他应用程序提供“10个最新成员”类型信息的常用方法是通过模板标签。请参见James Bennett关于最佳实践的文章(尽管值得注意的是,它有点过时,因为它是在
    包含标签
    简单标签
    快捷方式可用之前编写的)。

    从其他应用程序提供“10个最新成员”类型信息的常用方法是通过模板标签。请参阅James Bennett关于最佳实践的文章(尽管请注意,它有点过时,因为它是在
    包含标签
    简单标签
    快捷方式可用之前编写的)。

    什么都没有?模板标签有作用。好吧,我很害怕。但是你会怎么做呢。您有一些像这样的小应用程序,最新的用户,也许还有一些其他的。你将如何组织这项工作以使其变得简单。我是说干巴巴的。您是否会创建一个计算最新用户的函数,并从视图中调用该函数,然后将数据发送到模板。如果是这样,如何以最“合理”的方式做到这一点?谢谢你的回答way@Oli:模板标记可以迭代并做出简单的决定。它们不应该取代正确的视图逻辑。是的,他们可以做很多。但表演通常会受到影响,什么都没有?模板标记可以做一些事情。