【发布时间】:2020-03-21 12:35:24
【问题描述】:
我想在 Dash (Plotly) 中创建一个用户表单,以便可以使用 cx_Oracle 连接到 Oracle 数据库。我能够毫无问题地连接到数据库并在回调中查询数据,但我不太确定如何在不同的回调之间“共享”打开的连接以进行不同的查询或使用注销按钮关闭连接。
非常感谢任何建议!谢谢!
HTML 布局
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)
【问题讨论】:
标签: python oracle callback plotly-dash