我仔细阅读了以下文章,以使其更加清晰。
Flask isn't getting the checkbox value
Send data from a textbox into Flask?
尽管它们提供了很多信息,但是这些问题中的html代码很简单。
这是我的代码。
from flask import Flask, render_template, request, jsonify
import webbrowser
from threading import Timer
import pandas as pd
import warnings
from bokeh.io import output_file
from bokeh.models.widgets import CheckboxGroup
from bokeh.plotting import save
flat_list=['S&P 500',
'Nasdaq 100',
'Russell 2000',
'MSCI Europe',
'STOXX Europe 600',
'Nikkei 225',
'MSCI Japan',
'MSCI EM',
'MSCI US REIT',
'Commodities',
'US Corp HY',
'US Corp IG',
'LT US Treasuries (20+)',
'LT US Treasuries(10-30)',
'Gold',
'Barclays Agg. Bond Index',
'CPA(7-10YR Treasury)',
'Rf']
output_file("dropdown_list.html")
dropdown = CheckboxGroup(labels=flat_list)
save(dropdown)
app = Flask(__name__)
@app.route('/process',methods=["GET", "POST"])
def process():
if request.method == 'POST':
data = request.json
return jsonify(data)
#return render_template("form.html")
return render_template("dropdown_list.html")
def open_browser():
webbrowser.open_new('http://127.0.0.1:2000/process')
if __name__ == '__main__':
Timer(1, open_browser).start();
app.run(port=2000)
代码打开dropdown_list html。如何将选中的框放回烧瓶中?
答案 0 :(得分:0)
您最好的选择是使用CustomJS
回调配置Bokeh复选框,该回调将自己的POST返回到flask应用程序,例如在实际创建Bokeh内容的代码中执行以下操作:
callback = CustomJS(args=dict(widget=dropdown), code="""
// JS code to post widget.active back to you app goes here
""")
dropdown.js_on_change('active', callback)