Django API выходит за рамки простой обработки данных - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть приложение django, которое развертывает логику модели и обработку данных через администрацию.

У меня также есть в том же проекте файл python (scriptcl.py), который использует данные модели для выполнения сложных вычислений, которые требуют некоторого времени (например, 5 секунд) для обработки.

Я перенес проект в облако, и теперь мне нужен API для вызова этого файла (scriptcl.py) с передачей параметров, обработки вычислений в соответствии с параметрами и данными БД (поддерживается администратором), а затем ответа назад.

Все примеры DRF django, которые я видел до сих пор, содержат только аутентификацию и обработку данных (Create, Read, Update, Delete).

Может ли кто-нибудь предложить идею подойти к этому?

Ответы [ 3 ]

0 голосов
/ 23 ноября 2018

Просто для того, чтобы дать обратную связь с этим, я выбрал подход к созданию другого API с использованием фляги и обычных сценариев Python.

Я также использовал sqlalchemy для доступа к базе данных и получения необходимых данных.

0 голосов
/ 23 ноября 2018

Написать класс, который наследует от DRF APIView, который обрабатывает аутентификацию, написать любую логику, которую вы хотите, или вызвать любую функцию, получить окончательный результат и отправить обратно JsonReposen. Но, как вы упомянули, если API требует больше времени, чтобы ответить. Тогда вам, возможно, придется подумать о чем-то другом. Например, возвращать request_id и нажимать на этот сервер request_id каждые 5 секунд, чтобы получить данные или что-то в этом роде.

0 голосов
/ 08 ноября 2018

На мой взгляд, правильным подходом было бы использование Celery для выполнения этих вычислений асинхронно.

...