Можно ли использовать внедрение зависимостей с Django?Python

Программы на Python
Ответить
Anonymous
 Можно ли использовать внедрение зависимостей с Django?

Сообщение Anonymous »

Мне очень нравится использовать технику внедрения зависимостей для разделения моего кода. Обычно это предполагает предоставление объекту функциональности в конструкторе от него.
Впервые я использую django для создания веб-API (с прикрепленной базой данных объектов). . Я намеревался внедрить сложную зависимость в простой в остальном метод. (в моем случае это была функциональность для интерпретации сообщений, поступающих от обменов RabbitMQ, но мой минимальный пример — это просто интерпретация общего сообщения как словаря, зависящего от сайта).
Однако в django все кажется быть автоматически сгенерированы либо из статических методов, либо из определения классов, я не смог найти, где на самом деле что-либо было создано или настраиваемо для внедрения зависимости.
Является ли эта техника и фреймворк django просто несовместимыми? или я что-то упускаю?
Код на данный момент
(минимальный пример, а не реальный код)
в urs.py:

Код: Выделить всё

urlpatterns = [
path("run/", views.run),
]
в view.py

Код: Выделить всё

def run(request):
interpreter = AbstractDataInterpreter() #This is the object I want to inject
data = interpreter.interpret(request)
return JsonResponse(data, safe=False)
У меня есть тестовый класс

Код: Выделить всё

TestDataInterpreter
для тестирования.
У меня есть класс

Код: Выделить всё

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

Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-django
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»