Джанго разделение бизнес-логики и логики взглядов - PullRequest
2 голосов
/ 25 мая 2011

Может кто-нибудь объяснить, что означает следующее:

«Бизнес-логика принадлежит модели, но логика представления принадлежит виду. "

Каково общее различие для каждого, а также несколько примеров. Спасибо.

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Вы могли бы просто спросить в комментариях к другому вопросу;).

Бизнес-логика - это все, что связано с тем, как «работает» вещь или как она работает. Возьмем для примера следующее:

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()

«Ответом» будет «Кряк!».

0 голосов
/ 03 июля 2017

Улучшение последнего ответа, если вы новичок в Django, является хорошей практикой для разделения вашей бизнес-логики и представления логики, если мы используем бизнес-логику в вашей модели или в любом файле на этом уровне, а ваши представления должны вызывать толькообъекты и метод для возврата данных к вашим представлениям, вы не должны обрабатывать данные (я имею в виду случайные данные или помещать какую-либо дополнительную логику) в ваши представления, если вам нужно что-то изменить в логике основного метода, вы должны изменить свой метод, но если вы хотите сохранить логику основного метода, вам следует создать новый метод для обработки этого нового условия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...