Как делается проект на Django с использованием чужого API?
Хочу сделать свой проект, который использует бесплатный API, собирает эти данные с определенной периодичностью (потому-что есть лимиты), обрабатывает их и отдает клиенту. В качестве фреймворка использую Django.
Я уже поработал с их API написав свой скрипт с requests и закешировал данные - все работает.
Сейчас мне хочется понять как правильное реализовать структуру проекта, как я описал в 1-м абзаце.
Больше всего мне не понятно должен ли я обращаться к API вне Django, записывать данные куда-то, а уже Django будет обращаться в БД (например). Или Django должен напрямую работать с API, соблюдая кеширование и т.д.
У меня пока не было опыта разработки таких приложений, но очень хочется попробовать. Подскажите с чего можно начать? Какие библиотеки надо использовать и каков порядок разработки?
обычно сторонние ресурсы грабятся в фоне, для Питона есть варианты:
1) просто очереди Gearman / RabbitMQ ( тут отличные манулы)
2) Celery , хорошо интегрирован с Джангой, но все же сложен
Pavel Denisov: прочитал статью на хабре про uwsgi spooler. Одно не понял. Вот у меня погодное апи. На каждый город где будет хранится кеш и как к нему обращаться?
В статье говорится: "Основным отличием от Celery является то, что не нужно использовать дополнительные компоненты (сам Celery и хранилище, например Redis)".
sim3x: ок, пока обойдусь без JS, хотя не вижу ничего сложного.
Уточню, что это погодный АПИ. И какой лучше использовать механизм\алгоритм для обновления этих данных. Например источник сам говорит, что нет смысла обновлять текущую погоду чаще чем раз в пол часа. Получается, что я могу закешировать данные на погоду "Сегодня" на 30 минут, и показывать для уже запрошенного города кеш, а для новых узнавать и помещать в кеш и т.д.
Остается момент: куда помещать данные в БД или кешировать?