我正在Flask中构建一个web应用程序,每次在客户端提交表单时,我都要为它生成一个新函数。我的设置如下:
我在index.html中定义了一个表单组件,它通过POST请求将数据发送到我的Flask服务器:
<form method="POST">
<input name="api" />
<input name="api" type="submit" />
</form>
在Flask服务器上,我定义了一个静态函数“some_plot()”,我希望在每次提交表单时动态自动生成该函数的新版本。这里发生的事情是,用户以submit的形式提交了一个API键,函数使用它根据从API接收到的数据自动绘制一个图表。我希望动态地为每个新函数指定一个新名称,例如“some \u plot1()、some \u plot2()、some \u plot3()”等
def some_plot():
if request.method == 'POST':
api= request.form['api']
datasource= fr.series.observations(api)
plot = figure(y_range=[-15, 20], plot_height=300, sizing_mode='scale_width')
plot.line(source=datasource, x='date', y='value', line_width=2)
script, div = components(plot)
return script, div
else:
return 'string'
我之所以希望在每个表单submit上动态生成一个新函数,是因为我呈现的图形如下所示。每个新的绘图函数都需要在“show\u dashboard()”函数中列出,以便在网页上呈现。您可以在下面看到,我手动列出了静态的“some\u plot()”函数,但我希望创建一个新函数并在每个表单submit上列出。类似于“some \u plot()1,some \u plot()2,some \u plot(3)”等。。。这可行吗?实现这一目标的好方法是什么
#Render Webpage#
@app.route('/', methods=['GET', 'POST'])
def show_dashboard():
plots = []
#Call Graph Function
plots.append(Urban_Index_Plot())
plots.append(Real_GDP_Plot())
if some_plot():
plots.append(some_plot())
return render_template('index.html', plots=plots)
目前没有回答
相关问题 更多 >
编程相关推荐