我正在构建Bokeh服务器来承载SQL查询功能,我想在网页上打印查询状态,所以我使用了Markup
小部件并更新了它的文本值。但是,“正在运行查询,请稍候...”的信息永远不会显示,完成函数执行后只能显示最后一个值。
我如何找到问题所在?
下面是我的代码的一部分:
def submit_query():
para_status.text = "Running query, please wait..."
cnx = mysql.connector.connect(**SQL_config)
query = clause_build() #call the query clause from another def
df = pd.read_sql(query, cnx)
cnx.close()
if df.size >0:
para_status.text = ("Data query is done, total " + \
str(int(df.shape[0])) + " rows.")
df.to_csv(dpath + './query_result.csv', index = False)
else:
para_status.text = "Oops, result is empty, please refine the filters and try again."
para_status = PreText(text = '')
btn_submit = Button(label = "Submit query", button_type="success")
btn_submit.on_click(submit_query)
page = column(btn_submit, para_status)
add_next_tick_callback
:from time import sleep
from bokeh.io import curdoc
from bokeh.layouts import column
from bokeh.models import Button, Div
d = Div(text="start")
b = Button()
def work():
sleep(2)
d.text = "end"
def cb():
d.text = "middle"
curdoc().add_next_tick_callback(work)
b.on_click(cb)
curdoc().add_root(column(d, b))