Python 如何使flask中的html提交按钮正常工作?
我有一个Flask应用程序,在我的html模板(Jinja2)中,我有一个简单的表单,它只有一个按钮:Python 如何使flask中的html提交按钮正常工作?,python,html,forms,flask,submit-button,Python,Html,Forms,Flask,Submit Button,我有一个Flask应用程序,在我的html模板(Jinja2)中,我有一个简单的表单,它只有一个按钮: <form name='resetLayoutForm' method='POST'> <input type="submit" value="Reset layout" class="submitButton"/> </form> 但这不是一个好的解决方案,因为我在代码中有一些其他操作正在使用POST请求方法,我不希望在使用这些其他POST操作
<form name='resetLayoutForm' method='POST'>
<input type="submit" value="Reset layout" class="submitButton"/>
</form>
但这不是一个好的解决方案,因为我在代码中有一些其他操作正在使用POST请求方法,我不希望在使用这些其他POST操作时激活代码。你说的“让Python脚本知道”按钮被单击是什么意思
如果您不想与服务器对话,并且按钮单击仅用于客户端,那么为什么不使用Javascript呢?例如,最简单的方法是使用onclick事件:
<input type="submit" value="Reset layout" class="submitButton" onclick=doSomething() />
其中doSomething()是一个javascript函数,您可以编写复制包含按钮的表单,并将其操作设置为其他URL。然后,当按下时,只有该不同的URL将接收数据
显然,正如其他人所指出的,有Javascript机制可以实现这一点,但如果不需要这些机制…您可以使用
request.form.values()
检查输入的value属性,如下所示:
@app.route('/localhost/some_route', methods = ['POST', 'GET'])
def function():
# code
if 'Reset_layout' in request.form.values():
# code
因此,将按钮发布到只响应该按钮的其他处理程序?只需复制包含该按钮的表单,并将其操作设置为其他URL。这对我的目的没有好处。我希望代码在同一个URL上执行,所以只需在按钮表单中包含一个令牌,告诉“其他代码”在按下该按钮时不要执行,在使用“右”POST操作时执行。我认为,您正在使它变得更加复杂。您希望在服务器上使用相同的表单、相同的操作URL执行。那么,需要分别执行这个“其他python脚本”吗。我不明白。为什么不能执行python脚本,然后使用相同的POST继续其余需要执行的操作呢?我的意思是,当您单击按钮时,向python脚本发送POST请求并执行一些python代码。您建议的答案不能满足我的需要,因为doSomething()需要是Python脚本,而不是JavaScript。是的,这就是我想要做的(当然,在单击按钮之后)
@app.route('/localhost/some_route', methods = ['POST', 'GET'])
def function():
# code
if 'Reset_layout' in request.form.values():
# code