So rendern Sie Tabellen in der Taipy -App dynamisch aus
Posted: 02 Jun 2025, 20:06
Ich habe eine Taipy-Anwendung, in der ich bei der Auswahl eines Wertes aus der Dropdown-Komponente dynamisch Tabellen ausgewählt habe. Werte: PartnerName, RegionName, UserId, GroupName . Nach jeder Auswahl eines Wertes aus einem Dropdown wird der Wert entfernt und die Tabelle wird zusammen mit den anderen Tabellen, die bereits für zuvor ausgewählte Werte gerendert werden. Die Tabelle sollte Daten aus diesem aggregierten Datenrahmen haben. Wenn Sie versucht haben, Index < /p>
zu verwenden
zu verwenden
Code: Select all
for i, _ in enumerate(state.tables_data):
with builder.part("card"):
builder.text(f"Filter applied: {state.filter_display_texts[i]}", class_name="h2")
builder.table(data=state.tables_data[i], page_size=10)
< /code>
heißt es immer, dass < /p>
> WARNING:root:
--- 1 warning(s) were found for page 'TaiPy_partials_0' ---
- Warning 1: table.data property should be bound.
-------------------------------------------------------------
return attrgetter(name)(gui._get_data_scope())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'types.SimpleNamespace' object has no attribute ''
< /code>
< /blockquote>
und wenn ich versuche, nach Datenrahmen zu iterieren, heißt es: < /p>
--- 2 Warnung (S) wurden für Seite 'Taipy_Partials_0'--< /p>
carring 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1: Tabelle 1 "gefunden. /> WARNUNG 2: Datenzubehör für Typ . < /li>
< /ul>
< /Blockquote>
und ein Fehler < /p>
TracBack (letztes Call Last): Datei
Traceback (letztes Anruf />"taipy_apps\taipy-app\lib\Site-Packages\taipy\guiii.py ", Zeile 676,
in _Manage_Message
self.__Request_data_update(strieben />"taipy_apps\taipy-app\lib\Site-Packages\Taipy\guiii.py ", Zeile 1134,
in __request_data_update
newvalue = _getScopeAttr_drill (self, var_name)
/> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Attretter (Name) (GUI._Get_Data_Scope ())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ e) < /p>
< /blockquote>
Ich verwende:
Python v3.12.0
Taipy v4.0.3
Pandas v2.2.2 < /p>
My code so far:
from taipy.gui import Gui
import taipy.gui.builder as builder
import pandas as pd
from datetime import date
# Load data
data = pd.read_csv('my_data.csv')
data.fillna(0, inplace=True)
# Initialize variables
selected_partners = None
partners = data['partnerName'].unique().tolist()
starting = date(2025, 1, 1)
ending = date(2025, 5, 1)
dates = [starting, ending]
selected_filter = None
filters = [ 'partnerName', 'regionName', 'userId', 'groupName' ]
filter_display_texts = []
tables_data = []
def load_data(state):
print(state.selected_partners)
print(state.dates)
state.data = data[data['partnerName'].isin(state.selected_partners)] if state.selected_partners else data
def filter_category(state):
if not state.selected_filter:
return
print('Filtering data by:', state.selected_filter)
state.filter_display_texts.append(state.selected_filter)
value = state.data.groupby(state.selected_filter)[['depositAmount', 'withdrawalAmount', 'totalRevenue']].sum().reset_index()
state.tables_data.append(value)
with builder.Page() as table_data:
with builder.layout("1"):
for val in state.tables_data:
with builder.part("card"):
builder.table(data=val, class_name="h2")
tables_partial.update_content(state, table_data)
state.filters = [f for f in state.filters if f != state.selected_filter]
def reset_state(state):
pass
with builder.Page() as page:
builder.date_range(dates="{dates}", label_start="Start Date", label_end="End Date")
builder.selector(value="{selected_partners}", lov="{partners}", dropdown=True, multiple=True, filter=True, label="Select region (if none all will be displayed)")
builder.button(label="Submit", on_action=load_data)
builder.button(label="Reset", on_action=reset_state)
builder.html("br")
builder.selector(value='{selected_filter}', lov="{filters}", dropdown=True, label='Select filter', on_change=filter_category)
builder.part(partial="{tables_partial}")
gui = Gui(page=page)
tables_partial = gui.add_partial("")
gui.run(title="Analytics Dashboard", dark_mode=True, use_reloader=True, port=5001, debug=True)