Джанго общается с другим приложением Python? - PullRequest
0 голосов
/ 19 октября 2019

Можно ли запустить на сервере django, и одно приложение из django, взаимодействующее с другим процессом python, скажет, что я разработал и получил от него ответ, или даже заставил его просто выполнить определенное действие?

Это может быть синхронно или асинхронно;У меня есть идея быть асинхронным, когда можно использовать такой пакет, как hendrix, crossbar.io или даже сельдерей. Но я не понимаю, как будет называться это взаимодействие и как мне планировать архитектуру для этого.

Обходя голову, у меня есть две следующие ситуации, которые я ищу, чтобы составить планразработано:

1.

Допустим, у меня есть django и отправитель электронной почты с пакетом python smtp. Пользователь, делающий запрос к представлению, заставит django выполнить мой модуль python, который я разработал для отправки электронного письма конкретному пользователю (с сервером smpt из google / gmail). Это может быть синхронно или асинхронно.

ИЛИ

2

У меня есть django (какое-то приложение), и я хочу, чтобы он связывался с каким-то сервером. поддерживать;скажем, для того, чтобы заставить этот сервер выполнить некоторый код или просто извлечь файл (если это FTP-сервер). Это подходящая ситуация, чтобы указать на термин «микросервисы»? Или здесь есть другой термин или обходной путь?

1 Ответ

0 голосов
/ 19 октября 2019

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

Вторым решением будет микросервис. Это потребует установки вашего небольшого модуля в качестве службы, которая может иметь интерфейс REST API для связи и заставить его делать то, что вы намерены делать.

Если ваш вопрос «какой подход правильный», то я быскажу вам, что это зависит от вашего варианта использования. Если это просто какой-то повторно используемый код, который вы не хотите повторять снова и снова в нашем проекте, просто сделайте его отдельным модулем. Хотя, если вы ожидаете, что это сервис, который будут использовать другие сервисы и будут полагаться на него, просто превратите его в микросервис. Вы можете использовать микрорамку, такую ​​как Flask, для более простой и быстрой настройки вашего сервиса. В противном случае, если это всего лишь какой-то код, который вы будете использовать один раз и который будет выполнять одну функцию в вашем приложении, просто напишите его и оставьте его там.

Нет правил или стандартов, по которым следует подходить. Я лично оцениваю вещи в зависимости от варианта использования.

Надеюсь, это поможет!

...