Windows. Streamlit перезагружает страницу при каждом взаимодействии

Windows. Streamlit перезагружает страницу при каждом взаимодействии, и состояние сбрасывается. Поэтому кнопка Выбрать не работает

import streamlit as st
import pandas as pd
from datetime import datetime
import os

# Основная функция Streamlit
def main():
    # Инициализация session_state
    if 'selected_id' not in st.session_state:
        st.session_state.selected_id = None

    # Загрузка данных из df_00_aaa.csv
    df = pd.read_csv('data/df_00_aaa.csv')

    # Выбор двух случайных фото
    samples = df.sample(2)
    st.write("Случайно выбранные фото:")
    cols = st.columns(2)

    # Отображение фото и кнопок выбора
    for i, sample in enumerate(samples.itertuples()):
        cols[i].write(f"ID: {sample.id}")
        cols[i].write(sample.description_rus)
        if cols[i].button(f"Выбрать {sample.id}", key=f"btn_{sample.id}_{i}"):
            st.session_state.selected_id = sample.id
            st.write(f"Выбрано изображение с ID: {st.session_state.selected_id}")

    # Отладочное сообщение: текущее значение selected_id
    st.write(f"Текущее значение selected_id: {st.session_state.selected_id}")

    # Кнопка "Записать"
    if st.button("Записать"):
        if st.session_state.selected_id:
            # Создание папки data, если она не существует
            os.makedirs('data', exist_ok=True)

            # Инициализация df_client.csv, если файл не существует
            if not os.path.exists('data/df_client.csv'):
                df_client = pd.DataFrame(columns=['date', '600_foto'])
                df_client.to_csv('data/df_client.csv', index=False)
                st.write("Создан новый файл df_client.csv.")  # Отладочное сообщение
            else:
                df_client = pd.read_csv('data/df_client.csv')
                st.write("Загружен существующий файл df_client.csv:")  # Отладочное сообщение
                st.write(df_client)  # Отладочное сообщение

            # Добавление новой записи
            new_row = pd.DataFrame({
                'date': [datetime.now().strftime('%Y-%m-%d %H:%M')],
                '600_foto': [st.session_state.selected_id]
            })
            df_client = pd.concat([df_client, new_row], ignore_index=True)
            df_client.to_csv('data/df_client.csv', index=False)
            st.write(f"Добавлена запись: {new_row.iloc[0]}")  # Отладочное сообщение
        else:
            st.write("Изображение не выбрано.")  # Отладочное сообщение

if __name__ == "__main__":
    main()

Ответы (0 шт):