2017-05-05 68 views
0

我无法访问框架中的所有按钮。它仅适用于直方图按钮。这里是我想要在Post方法中访问它的表单。以相同的形式使用多个提交按钮

<form id="package_form" action="" method="post"> 
     <div class="panel-body"> 
      <input type ="submit" name="Download" value="Download"> 
     </div> 
     <div class="panel-body"> 
      <input type ="submit" name="Histogram" value="Histogram"> 
     </div> 
     <div class="panel-body"> 
      <input type ="submit" name="Search" value="Search"> 
     </div> 

</form> 

这是我的python代码。

if request.method == 'GET': 
     return render_template("preview.html", link=link1) 
    elif request.method == 'POST': 
     if request.form['Histogram'] == 'Histogram': 
      gray_img = cv2.imread(link2,cv2.IMREAD_GRAYSCALE) 
      cv2.imshow('GoldenGate', gray_img) 
      hist = cv2.calcHist([gray_img], [0], None, [256], [0, 256]) 
      plt.hist(gray_img.ravel(), 256, [0, 256]) 
      plt.xlabel('Pixel Intensity Values') 
      plt.ylabel('Frequency') 
      plt.title('Histogram for gray scale picture') 
      plt.show() 
      return render_template("preview.html", link=link1) 

     elif request.form.get['Download'] == 'Download': 
      response = make_response(link2) 
      response.headers["Content-Disposition"] = "attachment; filename=link.txt" 
      return response 
     elif request.form.get['Search'] == 'Search': 
      return link1 

我在做什么错了?

回答

3

它不会像你写的那样工作。只有您发送的提交按钮将包含在request.form中,如果您尝试使用其他按钮之一的名称,则会出现错误。

而不是给按钮不同的名称,使用相同的名称,但使用不同的值。

<form id="package_form" action="" method="post"> 
     <div class="panel-body"> 
      <input type ="submit" name="action" value="Download"> 
     </div> 
     <div class="panel-body"> 
      <input type ="submit" name="action" value="Histogram"> 
     </div> 
     <div class="panel-body"> 
      <input type ="submit" name="action" value="Search"> 
     </div> 

</form> 

然后你的Python代码可以是:

if request.form.post['action'] == 'Download': 
    ... 
elif request.form.post['action'] == 'Histogram': 
    ... 
elif request.form.post['action'] == 'Search': 
    ... 
else: 
    ... // Report bad parameter 
+0

非常感谢您!它完美的工作! – Andreea

相关问题