我无法访问框架中的所有按钮.它仅适用于直方图按钮.这是我想要在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>
Run Code Online (Sandbox Code Playgroud)
这是我的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
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
它不会像你写的那样工作.只包含您发送的提交按钮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>
Run Code Online (Sandbox Code Playgroud)
那么你的Python代码可以是:
if request.form.post['action'] == 'Download':
...
elif request.form.post['action'] == 'Histogram':
...
elif request.form.post['action'] == 'Search':
...
else:
... // Report bad parameter
Run Code Online (Sandbox Code Playgroud)
尽管对不同的提交使用相同的名称可以工作(如上一个答案中所建议的那样),但对于 i18n 来说可能不太方便。
你仍然可以使用不同的名称,但你应该检查处理它们的不同:
if 'Download' in request.form:
...
elif 'Histogram' in request.form:
...
elif 'Search' in request.form:
...
else:
... // Report bad parameter
Run Code Online (Sandbox Code Playgroud)