Требуется руководство по созданию панели мониторинга на основе Django

#django #sqlite #django-models #data-manipulation

#django #sqlite #django-модели #манипулирование данными

Вопрос:

Я новичок в Django, и в качестве практического проекта я хотел бы создать веб-страницу с панелью мониторинга для отслеживания инвестиций в конкретную платформу p2p. У них нет хорошей панели мониторинга (но они предоставляют файл Excel со всеми данными). На мой взгляд, основные шаги, которые мне нужно выполнить в этом проекте, следующие:

  1. Создайте логин, чтобы у пользователей была учетная запись, в которую они загружают свои файлы Excel.
  2. Сделайте возможным импорт файла Excel в базу данных
  3. Манипулируйте / вычисляйте данные для их последующего использования в панели мониторинга
  4. Создайте панель мониторинга.
  5. Веб-страница хоста.

После некоторой борьбы я реализовал пункт № 2 и разберусь с 1 и 5 позже. Но номер 3 — моя самая большая проблема сейчас.

  1. Я совершенно не уверен, что мне нужно делать, и Google не помог. Мне нужно вычислить данные, прежде чем я смогу создать из них панель мониторинга. Объедините две таблицы, а затем соедините их с третьей таблицей, создав некоторые дополнительные необходимые вычисляемые поля. Должен ли я создать представление в базе данных и каким-либо образом извлечь эти данные в Django? Или мне нужно создать некоторые правила, чтобы новая таблица создавалась во время импорта? Я думаю, что наличие таблицы вместо представления повысило бы производительность. Или, может быть, я делаю это совершенно неправильно и должен использовать совершенно другой подход к такого рода задачам? Кроме того, является ли SQLite хорошей базой данных для задачи (я использую ее, потому что это было по умолчанию в Django)?

  2. Я предполагаю, что для части визуализации мне нужно будет сделать это с помощью какой-либо библиотеки JavaScript, такой как D3? Которая затем будет использовать данные из шага 3.

Ответ №1:

Для части 3 есть 2 способа: либо выполните эти действия и сохраните результат в своей базе данных, либо вы можете сделать это, когда вам это нужно, используя функции модели django, такие как аннотации, агрегирование и т.д.

  • Вариант 1 требует добавления таблицы для ваших вычислений, которая является моделями в django.

  • Вариант 2 требует создания аннотаций в представлении или менеджерах моделей, а затем использования их в представлениях.

Документы Django: агрегация

Какой из них лучше, зависит от того, насколько велики ваши данные, насколько сложны вычисления и как часто они вам нужны.

И для базы данных; SQLite — это просто база данных для разработки, а не для производства, и неприветливая, с большим количеством данных и множеством вычислений. Рекомендуемая база данных для django — postgresql, которая довольно хороша при обработке миллионов и даже миллиардов данных и выполнении сложных вычислений.

И для визуализации вы должны обработать это на стороне шаблона, который в основном представляет собой HTML, CSS и JS.

Комментарии:

1. Спасибо за ответ. Думаю, теперь у меня есть идея. Должен ли я использовать pandas для вычислений, или вы предлагаете что-то еще?

2. Это зависит от ваших вычислений, pandas — лучший вариант, чем выполнение вычислений с помощью чистого python, но все же не так быстро, как database, если вы можете писать хорошие запросы.