应用逻辑在视图代码中

Naf*_*Kay 2 django

我应该在我的视图代码中编写应用程序逻辑吗?例如,在提交表单元素时,我需要创建一个用户并向他发送一封激活邮件.这是从视图功能做的事情,还是我应该创建一个单独的功能,以便更容易测试道路?Django在这里推荐什么?

Tim*_*ony 6

当我开始使用django时,我发现很难弄清楚一切都在哪里.这实际上取决于您所编写的逻辑类型.

首先从模型开始:模型方法和管理器是执行行级逻辑和表级逻辑的好地方,即模型管理器是编写代码以获取与所有博客帖子相关联的类别列表的好地方.模型方法是计算特定博客帖子中字符的好地方.

视图级逻辑应该处理所有这些 - 接收请求,执行必要的步骤以获得所需的结果(可能使用模型管理器),然后为模板做好准备.

如果有代码不适合else,但是有一个逻辑结构,你可以简单地编写一个模块来执行它.类似地,如果存在您认为不属于的代码片段,请保留utils.py来保存它们.

您不应该在模板中执行任何逻辑 - 如果必须,请使用模板标记.这些对于使用您在每个请求周期中都不需要的可重用代码片段以及单个请求周期都很有用 - 您可能希望它们在子集中(即在您的网站的博客部分中显示类别列表)

如果您确实希望在每个请求周期中执行某些逻辑,请使用上下文处理器或中间件.如果您希望仅在一个请求周期中执行某些逻辑,则视图可能就是该位置.

TLDR:在您的视图中编写逻辑很好,但有很多地方可能更合适