From a112b4204cd68960bbfe4ccb28847f76913c8bb1 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 6 Mar 2024 22:55:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=90=8E=E5=8F=B0=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data.db | Bin 28672 -> 28672 bytes db_utils.py | 9 --------- main.py | 48 +++++++++++++++++++++--------------------------- 3 files changed, 21 insertions(+), 36 deletions(-) diff --git a/data.db b/data.db index 6f43ea817c9971475d7bdeed1e72b1ee6c5e8305..8825f05a8481c556842ec05c392785db7fdb6357 100644 GIT binary patch delta 591 zcmZp8z}WDBae@>RBiBS3Cm^{oVG%zUKZ78HBO|{GW5Z+~0ebLIPkdo=XKqdDQ0Cqpa;dw;TGmMqYb7I3xwntGG@r3Ha5 zQIx(4^fxrDCjXZ{io`oBa~7y#w(L=~&@=;urtTzpIk9xK?|$$=SiKpzWEjRL+wNvCm^{oVG%#qQwBi>M+QcIewE2Q0`>x&jlqrD931S=y**q4 z3`|TWe-zc3{7OK6@&hBO$p-}dSsH^G`6des=1vX}ts14-ObmmwM+o<3%EG| diff --git a/db_utils.py b/db_utils.py index 2c5c8fd..4afde3b 100644 --- a/db_utils.py +++ b/db_utils.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 # -*- coding:utf-8 -*- -from typing import Generator from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.orm import declarative_base, sessionmaker @@ -29,11 +28,3 @@ Base.metadata.create_all(engine) Session = sessionmaker(bind=engine, ) session = Session() - - -def get_session() -> Generator: - try: - db = Session() - yield db - finally: - db.close() diff --git a/main.py b/main.py index 235da6e..9358efc 100644 --- a/main.py +++ b/main.py @@ -4,28 +4,29 @@ import streamlit as st from loguru import logger from bak.init_data import BatchDataRead -from db_utils import BatchData, get_session +from db_utils import BatchData, session -st.session_state.setdefault('data_table', []) - - -# session: Session = next(get_session()) def get_data_from_db(): - logger.info("init") - return (BatchDataRead.from_orm(db_obj).dict() - for db_obj in next(get_session()).query(BatchData).all()) + logger.debug("init") + db_objs = session.query(BatchData).all() + res = (BatchDataRead.from_orm(db_obj).dict() for db_obj in db_objs) + return list(res) -# logger.debug(st.session_state.data_table) -# if not st.session_state.data_table: -st.session_state.data_table = get_data_from_db() +st.session_state.setdefault('data_table', get_data_from_db()) df = pd.DataFrame(data=st.session_state.data_table) -def update_handler(*args, **kwargs): - logger.debug(f"{args=}, {kwargs=}") +def update_handler(): + edited_rows = st.session_state['edited_info'].get('edited_rows') + for id_, update_data in edited_rows.items(): + row_db = session.query(BatchData).where(BatchData.id == int(edited_df.loc[id_].id)).first() + logger.info(f"update: {update_data}") + for field in update_data: + setattr(row_db, field, update_data[field]) + session.commit() edited_df = st.data_editor(df, key="edited_info", @@ -42,18 +43,11 @@ edited_df = st.data_editor(df, key="edited_info", 'is_validation': "是否是验证集", }) -favorite_command = edited_df.loc[edited_df["id"].idxmax()] -data_table_change_info = st.session_state['edited_info'] -logger.debug(f"{data_table_change_info=}") +# favorite_command = edited_df.loc[edited_df["id"].idxmax()] +# data_table_change_info = st.session_state['edited_info'] +# logger.debug(f"{data_table_change_info=}") -edited_rows = data_table_change_info.get('edited_rows') -session = next(get_session()) -for id_, update_data in edited_rows.items(): - row_db = session.query(BatchData).where(BatchData.id == int(edited_df.loc[id_].id)).first() - for field in update_data: - setattr(row_db, field, update_data[field]) - st.text(f"update: {id_=}, {update_data=}") - st.toast('Your edited image was saved!', icon='😍') - session.commit() - st.rerun() -logger.info('end') +# st.rerun() +# st.session_state.data_table = get_data_from_db() + +# st.rerun()