Django - создание нескольких таблиц из листов Excel
Простите меня за относительную наивность этого вопроса... Я унаследовал проект Django с нулевым опытом работы с Django, поэтому я пытаюсь поддерживать его в рабочем состоянии, одновременно обучая себя фреймворку.
У меня есть рабочая книга Excel с несколькими листами, и я хочу иметь возможность создать таблицу для каждого листа. Рабочая книга поступает из API, поэтому я использую requests
для загрузки рабочей книги. Я знаком с загрузкой рабочей книги Excel и созданием датафрейма для каждой вкладки, но я не уверен, как передать несколько датафреймов нескольким моделям в Django, не делая запрос get
по одному разу для каждого листа.
Вот пример моей команды обновления для запроса получения плоского файла:
import os
import pandas as pd
import sys
import json
from datetime import date, datetime
from utils.update_dataset_command import UpdateDatasetCommand
class Command(UpdateDatasetCommand):
app_label = 'my_app'
model_name = 'table1'
def pull_data(self, fields):
# Pull the dataset from
get_request = requests.get('URL.csv')
dataframe = pd.read_csv(get_request.content)
return dataframe
Я пытаюсь достичь того, чтобы иметь возможность делать что-то вроде:
Class Command(UpdateDatasetCommand):
app_label = myapp
model_names = ['table1', 'table2', 'table3']
def pull_data(self, fields):
get_request = requests.get('URL.xlsx')
Excel = pd.ExcelFile(get_request.content)
dataframes = {}
for i in get_request.sheet_names:
d = pd.read_excel(Excel, sheet_name=i)
dataframes[i] = d
return dataframes
Где таблицы 1, 2 и 3 будут обновляться одной и той же командой обновления в одном приложении. Основная причина, по которой я хочу обновлять все из одного приложения, заключается в том, чтобы избежать выполнения более одного запроса get
. Так что если есть способ "сохранить" Excel куда-нибудь, где Django сможет получить к нему доступ для создания датафрейма из нескольких приложений, это тоже подойдет.
Мне удалось найти только примеры, в которых обновляется одна таблица из рабочей книги Excel с одной вкладкой, но если я пропустил учебник или документацию, пожалуйста, укажите мне правильное направление! Я предполагаю, что мне нужно сделать что-то, чтобы настроить файл dataset_admin.py
и tasks.py
с обработчиком Excel, но просто не уверен, что это правильное место для этого. Любые мысли приветствуются, спасибо заранее.