【问题标题】:Multiple buttons on a flask webapp?烧瓶网络应用程序上有多个按钮?
【发布时间】:2015-04-29 03:10:49
【问题描述】:

我正在使用 python 和烧瓶制作我的第一个 web 应用程序,它是一个简单的计算器,但我目前正试图使用​​多个按钮。一开始只是显示一个图表,这里是python代码:

class FormulaForm(Form):
    formula = StringField('formula')
    graph = SubmitField('graph')

@app.route('/')
def calculate():
    form = FormulaForm()
    formula = request.args.get('formula','')
    points = mp.make_points(formula,0,7)
    comp = make_plot(points[0],points[1])
    return render_template('index.html',the_script=comp[0],the_div=comp[1],form=form)

这里是html代码:

<form method="GET" action="">
    <br />
        {{ form.formula }}
    <br />
        {{ form.graph }}
</form>

到目前为止一切顺利。但我不知道如何添加更多功能,例如我想添加一个按钮,显示以某个值 x 评估的公式。我尝试在表单中添加一个额外的输入字段和一个额外的按钮,如下所示:

class FormFormula(Form):
    formula = StringField('formula')
    graph = SubmitField('graph')
    evaluate = StringField('evaluate_at')
    evaluate = SubmitField('evaluate')

但是我不知道如何让视图处理两个不同的动作。 我想我找到了一个解决方案here,但它仅在方法为“POST”时才有效,这会导致我不想要的页面重新加载。那么,有没有办法在同一个视图中使用多个按钮?

【问题讨论】:

  • 如果您不想重新加载页面,则必须使用AJAX

标签: python-2.7 flask flask-wtforms


【解决方案1】:
@app.route('/start' ,methods=['POST'])
def stop():
    "process done here"
    return Something

你的 app.py 像这样和 html 文件这样

    <script src="static/js/ajax.js"></script>
    <script type="text/javascript" language="javascript">
    $(document).ready(function() {
    $("#start").click(function(event){
    $.post(
        "/start",
        function(data) {
            window.alert(data);         
            }
        );      
            });
    });

</script>

<button id ="start" type="button" value = "Load Data">Start</button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多