Python 程序在 Visual Studio 代码中不显示任何输出/结果(无错误)



我有一个python程序,当我运行它时没有显示任何错误,但没有给出任何类型的输出。它只显示:

"Dash正在运行http://127.0.0.1:8050/

  • 正在服务的Flask应用'Editable_Table'
  • 调试模式:on">

没有给出其他输出。当我直接从命令行运行它时,它会给出相同的结果。

我试着做了一些研究,读到一个潜在的问题是定义main()函数。我不知道如何做到这一点(这里是编码新手),我尝试的一切都不起作用。我有">

if __name__ == "__main__":
app.run_server(debug=True)

在程序末尾,我尝试将main()定义为

def main():
main()

和切换main()和app.run_server(debug=True)行。

完整代码:

from dash import Dash, dash_table, dcc, html
from dash.dependencies import Input, Output, State
app = Dash(__name__)
app.layout = html.Div([
html.Div([
dcc.Input(
id='adding-rows-name',
placeholder='Enter a column name...',
value='',
style={'padding': 10}
),
html.Button('Add Column', id='adding-rows-button', n_clicks=0)
], style={'height': 50}),
dash_table.DataTable(
id='adding-rows-table',
columns=[{
'name': 'Column {}'.format(i),
'id': 'column-{}'.format(i),
'deletable': True,
'renamable': True
} for i in range(1, 5)],
data=[
{'column-{}'.format(i): (j + (i-1)*5) for i in range(1, 5)}
for j in range(5)
],
editable=True,
row_deletable=True
),
html.Button('Add Row', id='editing-rows-button', n_clicks=0),
dcc.Graph(id='adding-rows-graph')
])
@app.callback(
Output('adding-rows-table', 'data'),
Input('editing-rows-button', 'n_clicks'),
State('adding-rows-table', 'data'),
State('adding-rows-table', 'columns'))
def add_row(n_clicks, rows, columns):
if n_clicks > 0:
rows.append({c['id']: '' for c in columns})
return rows
@app.callback(
Output('adding-rows-table', 'columns'),
Input('adding-rows-button', 'n_clicks'),
State('adding-rows-name', 'value'),
State('adding-rows-table', 'columns'))
def update_columns(n_clicks, value, existing_columns):
if n_clicks > 0:
existing_columns.append({
'id': value, 'name': value,
'renamable': True, 'deletable': True
})
return existing_columns

@app.callback(
Output('adding-rows-graph', 'figure'),
Input('adding-rows-table', 'data'),
Input('adding-rows-table', 'columns'))
def display_output(rows, columns):
return {
'data': [{
'type': 'heatmap',
'z': [[row.get(c['id'], None) for c in columns] for row in rows],
'x': [c['name'] for c in columns]
}]
}

def main():
main()
if __name__ == "__main__":
app.run_server(debug=True)

输出将实际显示在浏览器中。复制/粘贴http://127.0.0.1:8050/到你的浏览器窗口,你的应用程序将弹出。

在您当前的代码中,您没有任何内容打印到控制台,因此不应该期望那里有任何内容。

最新更新