Я хотел создать форму пользователя в Da sh (Plotly), чтобы можно было подключиться к базе данных Oracle, используя cx_ Oracle. Я могу без проблем подключиться к базе данных и запросить данные в обратном вызове, но я не совсем уверен, как «разделить» открытое соединение между различными обратными вызовами, чтобы выполнить разные запросы или закрыть соединение с помощью кнопки выхода из системы.
Любой совет очень ценится! Спасибо!
HTML -Layout
app.layout = html.Div([
html.Header([
html.Img(src=comp_img, className='header-img'),
html.H1('My Project')
]),
html.Div([
html.Form([
dcc.Input(id='user-name', placeholder='Username', type='text'),
dcc.Input(id='user-pw', placeholder='Passwort', type='password'),
html.Button('Login', id='submit-button', type='submit', className='myButton'),
html.Div(id='intermediate-value')
], className='LoginForm')
], className='container'),
])
Обратный звонок:
@app.callback (
Output('intermediate-value', 'children'),
[Input('submit-button', 'n_clicks')],
[State('user-name', 'value'),
State('user-pw', 'value')]
)
def connect_db(n_clicks, username, password):
if n_clicks is None:
return
else:
print(n_clicks)
try:
my_connection = cDB.user_input(username, password)
qry = """SELECT * FROM my_table"""
df = cDB.query_tbl(qry, my_connection)
print(df)
except Exception as e:
print(e)