Python 如何使用dash html核心组件按钮执行def功能

Python 如何使用dash html核心组件按钮执行def功能,python,plotly-dash,Python,Plotly Dash,我有一个简单的代码,如下所示: import pyodbc import pandas as pd import os import sqlalchemy as db from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Date, Float import datetime as dt import numpy as np import dash import dash_html_comp

我有一个简单的代码,如下所示:

import pyodbc
import pandas as pd
import os
import sqlalchemy as db
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Date, Float
import datetime as dt
import numpy as np
import dash
import dash_html_components as html
import dash_core_components as dcc

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)




def my_DB_func():

    .............

    """Connection to sql-server Part"""
    # connect db
    engine = create_engine('mssql+pyodbc://bbbbb-aaaaa\zzzzzzzxxx/toolDB?driver=SQL+Server+Native+Client+11.0')
    connection = engine.connect()

    ................

    # Close the connection
    connection.close()
app.layout = html.Div([
    html.Button('Submit', id='button'),
])

if __name__ == '__main__':
    app.run_server(debug=True)
因此,当单击此按钮时,我需要做的就是执行
my\u DB\u func()

关于这个函数,它只是一个包含800多行代码的代码,它使用
到_csv
到_sql
函数创建数据库并导出一些excel文件


那么如何执行
@Callback
函数来执行
def
功能

我尝试使用这个简单的@Callback,它可以工作:

@app.callback(
    Output(component_id='body-div', component_property='children'),
    [Input(component_id='button', component_property='n_clicks')]
)

def update_output(n_clicks):
    if n_clicks is None:
        raise PreventUpdate
    else:
        return my_DB_func()