Как редактировать базу данных в sqlite из блестящего pyPython

Программы на Python
Ответить
Anonymous
 Как редактировать базу данных в sqlite из блестящего py

Сообщение Anonymous »

У меня есть блестящее приложение, связанное с базой данных SQLite.
На странице 2 есть редактируемая таблица df_articulos, и я хочу, чтобы это происходило при редактировании значения в таблицу, принимает отредактированное значение и отправляет таблицу UPDATE в SQL для редактирования значения в db.df_articulos
from shiny.express import input, render, ui
from shinyswatch import theme
import transformardatos
from shiny import reactive

# Conectar a la base de datos y obtener los artículos
df_articulos = transformardatos.df_articulos

# Configurar la UI con tema y páginas
ui.page_opts(title="Hello shinyswatch theme", theme=theme.cosmo)
ui.page_opts(title="Gestión de Planificación y Desarrollo")

# Configurar la barra lateral con un menú acordeón

# Configurar las páginas

with ui.navset_pill(id="tab"):
with ui.nav_panel("Inicio"):
@render.text
def valor():
return f"Valor: {input.slider1() + input.slider2()}"

with ui.nav_panel("Pagina 2"):
with ui.navset_pill(id="tabEdicion"):
ui.nav_spacer()

with ui.nav_panel("Articulos"):
with ui.layout_columns():
with ui.card():
ui.card_header("Articulos registrados por las áreas")

@render.data_frame
def articulos_df():
return render.DataGrid( df_articulos,
filters=True,
width="100%",
selection_mode="rows",
height="600px",
editable=True)

dt_articulos — это запрос SQL:
import sqlite3

# db connect

conexion = sqlite3.connect("GestionPyD")
cursor = conexion.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS articulos (
ArtID INTEGER NOT NULL PRIMARY KEY,
Articulo TEXT,
Precio REAL,
Rubro TEXT,
Proceso TEXT,
Fgk_Objetal TEXT,
TipoGasto TEXT,
Fgk_GestionID INTEGER,
FOREIGN KEY(Fgk_GestionID) REFERENCES gestion(GestionID)
FOREIGN KEY(Fgk_Objetal) REFERENCES objetales(ObjetalID)
)
""")

tbl_articulos = data.cursor.execute(
"SELECT Articulo, Precio, Rubro, Fgk_Objetal FROM articulos"
).fetchall()

columnas = [description[0] for description in data.cursor.description]
df_articulos = pd.DataFrame(
tbl_articulos,
columns=columnas)

Я только начинаю приложение, потому что структура все еще очень проста, но я хочу знать, можно ли это сделать, чтобы продолжить работу с Python, или я вернусь к Shiny для R.
Я пробовал что-то вроде этого:
@reactive.Effect
def generate_sql():
if input.edit():
selected_row = input.articulos_df_rows_selected()
if selected_row:
selected_data = df_articulos.iloc[selected_row[0]]
articulo_id = selected_data['ArtID']
articulo_valor = selected_data['Articulo']



Подробнее здесь: https://stackoverflow.com/questions/791 ... m-shiny-py
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»