2015-04-29 75 views
1

我正在使用python和flask製作我的第一個webapp,它是一個簡單的計算器,但我目前卡住試圖使用多個按鈕。在它被安倍只是爲了顯示圖形開始,這裏是Python代碼:燒瓶webapp上的多個按鈕?

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計算的公式。我嘗試添加一個額外的inputfield和形式的額外的按鈕,這樣的事情:

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

但是當時我不知道如何使視圖處理兩個不同的動作。 我想我找到了一個解決方案here,但它只適用於方法是「POST」,並使頁面重新加載,我不想。那麼,有沒有辦法在同一視圖中使用多個按鈕?

+0

如果你不想重新加載頁面,你將不得不使用[AJAX](https://開頭開發商。 mozilla.org/en/docs/AJAX) – nathancahill

回答

0
@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>