#django #sqlite #django-models #data-manipulation
#django #sqlite #django-модели #манипулирование данными
Вопрос:
Я новичок в Django, и в качестве практического проекта я хотел бы создать веб-страницу с панелью мониторинга для отслеживания инвестиций в конкретную платформу p2p. У них нет хорошей панели мониторинга (но они предоставляют файл Excel со всеми данными). На мой взгляд, основные шаги, которые мне нужно выполнить в этом проекте, следующие:
- Создайте логин, чтобы у пользователей была учетная запись, в которую они загружают свои файлы Excel.
- Сделайте возможным импорт файла Excel в базу данных
- Манипулируйте / вычисляйте данные для их последующего использования в панели мониторинга
- Создайте панель мониторинга.
- Веб-страница хоста.
После некоторой борьбы я реализовал пункт № 2 и разберусь с 1 и 5 позже. Но номер 3 — моя самая большая проблема сейчас.
-
Я совершенно не уверен, что мне нужно делать, и Google не помог. Мне нужно вычислить данные, прежде чем я смогу создать из них панель мониторинга. Объедините две таблицы, а затем соедините их с третьей таблицей, создав некоторые дополнительные необходимые вычисляемые поля. Должен ли я создать представление в базе данных и каким-либо образом извлечь эти данные в Django? Или мне нужно создать некоторые правила, чтобы новая таблица создавалась во время импорта? Я думаю, что наличие таблицы вместо представления повысило бы производительность. Или, может быть, я делаю это совершенно неправильно и должен использовать совершенно другой подход к такого рода задачам? Кроме того, является ли SQLite хорошей базой данных для задачи (я использую ее, потому что это было по умолчанию в Django)?
-
Я предполагаю, что для части визуализации мне нужно будет сделать это с помощью какой-либо библиотеки JavaScript, такой как D3? Которая затем будет использовать данные из шага 3.
Ответ №1:
Для части 3 есть 2 способа: либо выполните эти действия и сохраните результат в своей базе данных, либо вы можете сделать это, когда вам это нужно, используя функции модели django, такие как аннотации, агрегирование и т.д.
-
Вариант 1 требует добавления таблицы для ваших вычислений, которая является моделями в django.
-
Вариант 2 требует создания аннотаций в представлении или менеджерах моделей, а затем использования их в представлениях.
Какой из них лучше, зависит от того, насколько велики ваши данные, насколько сложны вычисления и как часто они вам нужны.
И для базы данных; SQLite — это просто база данных для разработки, а не для производства, и неприветливая, с большим количеством данных и множеством вычислений. Рекомендуемая база данных для django — postgresql, которая довольно хороша при обработке миллионов и даже миллиардов данных и выполнении сложных вычислений.
И для визуализации вы должны обработать это на стороне шаблона, который в основном представляет собой HTML, CSS и JS.
Комментарии:
1. Спасибо за ответ. Думаю, теперь у меня есть идея. Должен ли я использовать pandas для вычислений, или вы предлагаете что-то еще?
2. Это зависит от ваших вычислений, pandas — лучший вариант, чем выполнение вычислений с помощью чистого python, но все же не так быстро, как database, если вы можете писать хорошие запросы.