gpt4 book ai didi

Django:使用 View 来处理模板标签的逻辑?

转载 作者:行者123 更新时间:2023-12-04 18:07:30 25 4
gpt4 key购买 nike

我编写了一个模板标签,其中包含我通常希望在 View 中找到的大部分逻辑。在编写一些单元测试时,我开始想知道一种稍微不同的方法。我觉得自己没有足够的经验来判断利弊(也许这甚至是一种众所周知的做法——或者不行……)。这就是我对您的意见感兴趣的原因。

我的想法是编写一个 View 来处理所有逻辑,并将模板标签用作包装器,将所有相关上下文传递给该 View 并返回呈现的 HTML。

我希望从这种方法中获得的优势:

  • 更容易提供不同的输出格式
  • 更容易干
  • 更容易测试
  • 在 View 中使用装饰器和混合器进行权限检查
  • 在 View 中缓存控件
  • 针对 ajax 和/或边缘端的不错方法包括
  • 更高的灵 active

例如,呈现树形导航的模板标签可以在通过模板标签访问时提供 HTML,同时其对应的 View 仍然可以通过 URL 访问。

View 可以提供不同的输出格式,如 JSON、RSS、XML,处理权限检查,...高级逻辑可以通过 View 进行测试,让 templatetag 测试用例负责只是为了确保最基本的。

我会很感激其他意见、提示或包或相关帖子的链接。

最佳答案

在我看来,模板标签的问题是:

  1. 过于抽象。
  2. 具有挑战性。
  3. 性能问题

我的建议是:

  1. 创建一个函数来生成数据、缓存数据、处理权限以及任何其他与数据相关的内容
  2. 再编写三个函数,分别以 HTML、JSON 和 XML 格式呈现数据
  3. 为上述功能编写文档并编写测试
  4. 根据需要在 View 、过滤器和模板标记中使用这些功能。调用函数的 View /过滤器/标签将非常精简且易于管理。

您通过这种方法获得的好处是:

  1. 可重复使用的代码
  2. 更容易测试的代码
  3. 更快的速度

关于Django:使用 View 来处理模板标签的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com