Django分离业务逻辑和视图逻辑

问题描述

| 有人可以解释以下含义吗:   “业务逻辑属于模型,   但是视图逻辑属于视图。\“ 每个例子的一般区别是什么?谢谢。     

解决方法

您可能只是在评论中问了另一个问题;)。 业务逻辑是与“事物”的工作或操作方式相关的任何事物。例如以下内容:
class Animal(Object):
    def speak(self,sound):
        print sound

class Duck(Animal):
    has_feathers = True
做这样的事情是不正确的:
>>> myduck = Duck()
>>> myduck.speak(\'Quack!\')
Quack!
鸭子发出“ Quack!”声音的事实是业务逻辑,应该在模型中:
class Duck(Animal):
    has_feathers = True
    makes_sound = \'Quack!\'

    def speak(self):
        super(Duck,self).speak(self.makes_sound)
您不一定需要了解所有这些内容。我们要做的只是确保当
Duck
说话时说“'Quack!'”:
>>> myduck = Duck()
>>> myduck.speak()
Quack!
视图逻辑将与处理请求并返回某种响应有关。使用前面的示例,我们的视图将包含用于实例化“ 3”对象并使之说话的代码。
myduck = Duck()
myduck.speak()
\“响应\”将是\“ Quack!\”。     ,只是改善最后一个答案 如果您是Django的新手,那么可以很好地使您的业务逻辑和视图逻辑分离,我们的业务逻辑应该在您的模型或该级别的任何文件中,并且您的视图只需要调用对象和方法即可将数据返回给您视图,您不应在视图上处理数据(我指的是数据偶然或放置任何其他逻辑),如果需要在主要方法逻辑上进行某些更改,则应在方法中进行更改,但如果要保留主要方法逻辑,然后应创建一个新方法来处理此新条件