如何获取烧瓶中的复选框值

时间:2019-06-26 13:47:37

标签: python html flask bokeh

我仔细阅读了以下文章,以使其更加清晰。

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。如何将选中的框放回烧瓶中?

1 个答案:

答案 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)