【发布时间】:2011-05-25 19:43:25
【问题描述】:
谁能解释一下下面的意思:
"业务逻辑属于模型, 但视图逻辑属于视图。”
每个的一般区别是什么以及几个例子。谢谢你。
【问题讨论】:
标签: django model-view-controller
谁能解释一下下面的意思:
"业务逻辑属于模型, 但视图逻辑属于视图。”
每个的一般区别是什么以及几个例子。谢谢你。
【问题讨论】:
标签: django model-view-controller
您可以在 cmets 中询问其他问题 ;)。
业务逻辑是与“事物”如何工作或运作有关的任何事物。举个例子:
class Animal(Object):
def speak(self, sound):
print sound
class Duck(Animal):
has_feathers = True
这样做是不正确的:
>>> myduck = Duck()
>>> myduck.speak('Quack!')
Quack!
鸭子会发出“嘎嘎!”的声音这一事实是业务逻辑,应该在模型中:
class Duck(Animal):
has_feathers = True
makes_sound = 'Quack!'
def speak(self):
super(Duck, self).speak(self.makes_sound)
您不一定需要了解所有这些;我们所做的只是确保当Duck 说话时,它会说“嘎嘎!”:
>>> myduck = Duck()
>>> myduck.speak()
Quack!
查看逻辑可以是与处理请求和返回某种响应相关的任何内容。使用前面的示例,我们的视图将包含用于实例化 Duck 对象并使其说话的代码。
myduck = Duck()
myduck.speak()
“响应”将是“嘎嘎!”。
【讨论】:
只是改进最后一个答案 如果您是 Django 新手,将业务逻辑和视图逻辑分开是一个很好的做法,我们的业务逻辑应该在您的模型或该级别的任何文件中,您的视图只需调用对象和方法即可将数据返回给您视图,您不应该在视图中处理数据(我的意思是数据或添加任何附加逻辑),如果您需要在主方法逻辑中更改某些内容,您应该更改您的方法,但如果您想保留main 方法逻辑,然后您应该创建一个新方法来处理这个新条件
【讨论】: