e_vladimir
Июнь 6, 2016 15:30:43
Добрый день, форумчане.
Прошу помощи в таком вопросе: что выбрать для web-интерфейса проекта?
Основная задача - вывод информации о том, что происходит внутри проекта.
На странице есть статическая информация, которая должна обновляться при обновлении страницы, а есть динамическая, которая должна раз в 5 секунд подгружать сколько-то строк отчёта о выполнении процесса.
Основная проблема в том, что проект очень широко и плотно использует наследование классов данных, усугубляя это всё большим использованием словарей в качестве параметров объектов (это не прихоть, это такая необходимость из за особенностей проекта).
Вторичная задача - отправка мелких команд управления со страниц.
Проект отлично работает сам по себе, в фоне. Но иногда требуется отправлять команды для разрешения мелких затыков. И тут нужен именно web-интерфейс, так как проектом надо управлять не только с компьютера, но и с телефона\ планшета.
Что выбрать? Есть желание работы с Django, но, имхо, очень он излишен в этом плане. Больше всего вопросов возникает в работе со словарями, как Django с ними будет работать в такой структурной мешанине?
FishHook
Июнь 6, 2016 15:33:53
Работа со словарями - это что? Можете привести пример подобной работы?
e_vladimir
Июнь 6, 2016 15:50:11
Есть базовый объект, он обладает некими свойствами, скажем, имя, номер, текущий статус.
Есть наследованные объекты, которые должны уметь принимать различные дополнительные поля. Какие и сколько - никто не знает. В зависимости от типа объекта, различается способ и методика работы с доп.полями. По-этому и был выбран вариант словаря, куда поступают и черпаются данные для аналитики. Плюс у каждого типа объекта есть свои функции и процедуры, отличные от других объектов.
Так же, каждый из наследованных объектов обладает своими уникальными свойствами.
Т.е. получается некая динамическая структура.
В-принципе, можно упростить структуру и свести всё в единый справочник объекта. Но тогда становится неудобно делать аналитику данных.
В БД словари хранятся прямо в таком виде, как они выходят из питона, загружаются обратно через ast.literal_eval.
Если с фильтрацией и приведением данных из БД в удобоваримую форму для представления на сайте как таковых вопросов не возникает, то остаётся вопрос как отправлять команды в ядро проекта из Django.
Разделять на два отдельных глобальных класса и объединять всё это в один большой объект и делать связку между ними?
Пока что проект не является высоконагруженным. Да и в дальнейшем, как показывают наши расчёты, он не превысит 500-600 запросов в секунду.
Или отказаться от Django и использовать простой HTTP-сервер?
FishHook
Июнь 6, 2016 15:51:27
Работа со словарями - это что? Можете привести пример подобной работы?
ayb
Июнь 6, 2016 16:32:18
С телефона или планшета можно зайти на сервер по ssh и выполнить нужные команды, никаких веб-интерфейсов не требуется.