Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使flask中的html提交按钮正常工作?_Python_Html_Forms_Flask_Submit Button - Fatal编程技术网

Python 如何使flask中的html提交按钮正常工作?

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操作

我有一个Flask应用程序,在我的html模板(Jinja2)中,我有一个简单的表单,它只有一个按钮:

<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