и отображает их в HTML-страницу с использованием шаблонов Jinja2.
Файл Excel используется в качестве файла конфигурации/определения:
- Каждая строка представляет этап процесса
- Определенный столбец (всегда столбец J) содержит маркер («x» или «X»)
- В веб-интерфейсе должны отображаться только строки, отмеченные знаком «x».
- Файл Excel может редактироваться и сохраняться пользователем во время работы приложения Flask.
Текущее поведение:
- Flask считывает файл Excel с помощью pandas.
- При перезагрузке страницы HTML-страница отображается снова с использованием render_template.
- Изменения в Excel отражаются только после полной перезагрузки страницы (что допустимо).
Чего я хочу достичь:
– Чистый и надежный способ динамического отражения изменений Excel в представлении HTML
– Excel остается единственным источником достоверной информации
– Никаких непрерывных опросов или фоновых потоков
– Никаких интерфейсных платформ (простой HTML/CSS/JS)
- Обновление на основе перезагрузки — это нормально, но архитектура должна быть чистой и масштабируемой.
Пример упрощенного кода:
Python (Flask):
Код: Выделить всё
@app.route("/")
def index():
df = pd.read_excel("data.xlsx", sheet_name="Process")
control_col = (
df.iloc\[:, 9\]
.astype(str)
.str.strip()
.str.lower()
)
visible_rows = df\[control_col == "x"\]
return render_template("index.html", rows=visible_rows.to_dict(orient="records"))
- Считается ли этот подход на основе перезагрузки (читай Excel → шаблон рендеринга) приемлемым в Flask?
- Существует ли рекомендуемый шаблон для более четкого структурирования (уровень обслуживания, кэширование и т. д.)?
- Существуют ли распространенные ошибки при использовании Excel в качестве динамических данных исходный код в приложении Flask?
- Рекомендуете ли вы читать Excel при каждом запросе или ввести механизм контролируемой перезагрузки?
Мобильная версия