使用按钮的Python Flask调用函数

按下烧瓶模板中的按钮后,我希望它调用在app.py中定义的python函数,通过在下面定义函数的地方键入以下内容,可以在模板中调用该函数:

app.py中的示例函数:

@app.route('/foo')

def foo(x,y):

pass

app.jinja_env.globals.update(foo=foo)

模板:

<button  type="button" onclick="myFunction(this)" name="enable" id="{{counter}}"> Enable </button>

在我的按钮中,我具有onclick属性,只是为了测试使用像javascript这样的按钮是否正确按下:

{% block scripts %}

{{ super() }}

<script>

function myFunction(elem){

if(confirm('Are you sure you want to ' + elem.name) == true){

alert("its done.");

}

else {

return false;

}

}

</script>

{% endblock %}

我面临的问题是我需要模板中提供的功能以对应正确的按钮。例如,如果按钮显示启用,那么我需要调用已经定义的启用功能,否则,如果按钮对应于false,则希望使用禁用功能。

我感觉自己朝着正确的方向前进,但无法超越这一部分。请尽可能详细。

回答:

如果要执行功能而不生成对服务器的请求,则必须在JavaScript中定义功能。否则,您需要触发HTTP请求。

现在,根据您的情况,如果您只想尝试启用/禁用按钮,那么就可以使用javascript来完成所有操作(无需转到服务器)。

例:

<button type="button" onclick="disableButton(this)" name="enable">Enable</button>

function disableButtonState(elem) {

if(confirm('Are you sure you want to disable this button?') == true) {

elem.disabled = true;

alert("its done.");

}

else {

return false;

}

}

</script>

但是,如果要在服务器上调用某个方法(例如发送电子邮件),则应使用formPOST / GET或AJAXPOST / GET

例:

@app.route('/foo', methods=['GET', 'POST'])

def foo(x=None, y=None):

# do something to send email

pass

<form action="/foo" method="post">

<button type="submit" value="Send Email" />

</form>

当您单击“发送电子邮件”按钮时,HTTP POST请求将发送到应用程序上的“ /

foo”。foo现在,您的函数可以从请求中提取一些数据,并在服务器端执行它想做的任何事情,然后将响应返回到客户端Web浏览器。

建议使用Flask教程更好地了解使用Flask构建的Web应用程序时客户端/服务器交互。

以上是 使用按钮的Python Flask调用函数 的全部内容, 来源链接: utcz.com/qa/433567.html

回到顶部