Sea*_*ean 11 javascript python ajax json flask
按下我的烧瓶模板中的按钮后,我希望它调用app.py中定义的python函数,通过在我定义函数的下面键入以下内容,我可以在模板中调用它:
app.py中的示例函数:
@app.route('/foo')
def foo(x,y):
pass
app.jinja_env.globals.update(foo=foo)
Run Code Online (Sandbox Code Playgroud)
模板:
<button type="button" onclick="myFunction(this)" name="enable" id="{{counter}}"> Enable </button>
Run Code Online (Sandbox Code Playgroud)
在我的按钮中我有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 %}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是我需要在模板中提供的功能,以对应正确的按钮.例如,如果按钮显示Enable,那么我需要调用已经定义的启用功能,否则如果按钮对应于false,我想要使用禁用功能.
我觉得我朝着正确的方向前进,但无法超越这一部分.请尽可能详细.
jun*_*ony 16
如果要在不向服务器生成请求的情况下执行函数,则必须在JavaScript中定义函数.否则,您需要触发HTTP请求.
现在在你的情况下,如果你要做的就是启用/禁用按钮,那么在javascript中完成所有这些操作是有意义的(不需要去服务器).
例:
<button type="button" onclick="disableButton(this)" name="enable">Enable</button>
Run Code Online (Sandbox Code Playgroud)
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;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是,如果你想要的是在服务器上调用一个方法,例如,发送一封电子邮件,那么你应该使用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
Run Code Online (Sandbox Code Playgroud)
模板
<form action="/foo" method="post">
<button type="submit" value="Send Email" />
</form>
Run Code Online (Sandbox Code Playgroud)
单击"发送电子邮件"按钮时,HTTP POST请求将发送到应用程序的"/ foo".您的函数foo
现在可以从请求中提取一些数据,并在服务器端执行任何想要执行的操作,然后将响应返回给客户端Web浏览器.
建议使用Flask教程,以便在使用Flask构建的Web应用程序时更好地了解客户端/服务器之间的交互.
归档时间: |
|
查看次数: |
45258 次 |
最近记录: |