问题描述
|
有人可以解释以下含义吗:
“业务逻辑属于模型,
但是视图逻辑属于视图。\“
每个例子的一般区别是什么?谢谢。
解决方法
您可能只是在评论中问了另一个问题;)。
业务逻辑是与“事物”的工作或操作方式相关的任何事物。例如以下内容:
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的新手,那么可以很好地使您的业务逻辑和视图逻辑分离,我们的业务逻辑应该在您的模型或该级别的任何文件中,并且您的视图只需要调用对象和方法即可将数据返回给您视图,您不应在视图上处理数据(我指的是数据偶然或放置任何其他逻辑),如果需要在主要方法逻辑上进行某些更改,则应在方法中进行更改,但如果要保留主要方法逻辑,然后应创建一个新方法来处理此新条件