Какой должна быть структура каталогов для REST API в Django?

Возможно, вы могли бы сделать что-то с простым классом-оболочкой для объединения, содержащего супер-набор данных, необходимых для каждого случая. Это будет содержать указатель на общие стратегии объекты, содержащие код для разных типов поведения. Таким образом, кошка является объектом класса PolyAnimal с видамиName = «cat», PredatorFeedingStrategy и т. Д.

Вероятно, лучшим способом решения основной проблемы является создание соответствующих пользовательских распределителей для более естественного дизайна.

1
задан Paras 18 January 2019 в 08:11
поделиться

1 ответ

Это отличный вопрос, но я не уверен, что StackOverflow - это то место, где его можно задать, так как нет четкого ответа. Тем не менее, я пытаюсь дать ему шанс.

Django также следует шаблону проектирования MVC, но наименование немного отличается.

  • Модели Django -> Модели MVC
  • Представления Django -> Контроллеры MVC
  • Шаблоны Django -> Представления MVC

Это часто упоминается как MTV вместо MVC. Но это не конец истории, потому что многие люди считают плохой идеей помещать слишком много бизнес-логики в представления по таким причинам, как тестируемость и возможность повторного использования. Существует два распространенных подхода к этой проблеме:

  • толстые модели: вы помещаете всю свою бизнес-логику в сервисы моделей
  • : у вас есть отдельные модули, содержащие методы / классы для вашей бизнес-логики

Лично я работал с обоими, и у меня был лучший опыт с сервисным подходом.

Эквивалентом DAO в Django, вероятно, является Django ORM. Обратите внимание, что это действительно только уровень абстракции для поддерживаемых реляционных баз данных. Если вы хотите использовать другой источник данных, такой как NoSQL DB или REST API, вы должны свернуть свое собственное решение или искать сторонние пакеты.

Java может иметь только один открытый класс на файл, и они должны иметь одинаковые имена. В Python такого ограничения нет, поэтому рекомендуется использовать несколько классов на файл (файлы .py называются модулями). Если модуль / файл становится слишком большим, вы можете превратить его в пакет (каталог с файлом __init__.py), содержащий несколько модулей (и / или подпакетов).

Различия между приложением и проектом могут сбивать с толку, поэтому я написал целую статью о схеме именования Django . Приложение Django представляет собой пакет Python, но обычно они организованы по доменам. Например. в системе управления библиотекой ваш проект library может иметь приложение catalogue для управления запасами и приложение checkout для управления процессом извлечения книг.

И наконец, если вы специально нацелены на создание REST API, я настоятельно рекомендую вам взглянуть на Django REST Framework .

0
ответ дан Daniel Hepper 18 January 2019 в 08:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: