Python Flask 使用按钮调用函数
Python Flask calling functions using buttons
按下烧瓶模板中的按钮后,我希望它调用 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>
JavaScript
function disableButtonState(elem) {
if(confirm('Are you sure you want to disable this button?') == true) {
elem.disabled = true;
alert("its done.");
}
else {
return false;
}
}
但是,如果您想要在服务器上调用例如发送电子邮件的方法,那么您应该使用 form
POST/GET 或 AJAX
POST/GET
例:
app.py
@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 应用程序时更好地了解客户端/服务器交互。
相关文章:
- 如何从模块链中调用函数.导出到节点中
- 调用函数内部的函数
- 在javascript中调用c函数
- DropDownListFor赢得't在更改时调用函数
- Javascript页面调用函数
- 在动画结束之前调用函数
- 允许父窗口在其不同域的子iframe上调用函数
- 运行Infinite Scroll后调用函数时出现问题
- JavaScript:在调用函数的文本输入上按enter键
- 使用大括号和不使用bracs调用函数的区别
- javascript在事件上调用函数
- 从index.html调用函数,该函数无限循环
- 从带参数的字符串变量调用函数中的函数
- 为什么 JS 不在滚动时调用函数
- 是否可以在不更改上下文的情况下调用函数.apply
- 如何在ES6类中使用参数调用函数
- AngularJS:调用函数时编号不更新
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 在JavaScript中调用函数时自定义此选项
- 调用函数中声明的变量