当前位置: 首页 > 面试题库 >

使用按钮的Python Flask调用函数

锺离慈
2023-03-14
问题内容

按下烧瓶模板中的按钮后,我希望它调用在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;
    }          
}
</script>

但是,如果要在服务器上调用某个方法(例如发送电子邮件),则应使用formPOST / GET或AJAXPOST / 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应用程序时客户端/服务器交互。



 类似资料:
  • 问题内容: 我正在尝试使用HTML按钮来调用JavaScript函数。 这是代码: 问题答案: 有几种使用HTML / DOM处理事件的方法。没有真正的对或错方法,但是在不同情况下使用不同的方法很有用。 1:在HTML中进行定义: 2:将其添加到Java事件中的DOM属性中: 3:并且使用Javascript将函数附加到事件处理程序: 第二种方法和第三种方法都允许使用内联/匿名函数,并且都必须在从

  • 希望从我上面发布的代码中可以明显看出,我试图使用php创建一个按钮,当单击该按钮时,它将调用一个php函数。到目前为止我还没有成功。任何建议都将不胜感激,但我希望我的代码尽可能接近我目前拥有的代码。

  • 问题内容: 我创建了一个名为functioncalling.php的页面,其中包含两个按钮 Submit 和 Insert 。作为PHP的初学者,我想测试单击按钮时执行的功能。我希望输出出现在同一页面上。因此,我创建了两个功能,每个按钮一个。functioncalling.php的源代码如下: 这里的问题是单击任何按钮后都没有输出。 我到底哪里出问题了? 问题答案: 是的,您在这里需要Ajax。请

  • 我正在使用ASP.NET和JavaScript创建一个计算器。当用户单击按钮时,现在正试图使它对按钮7起作用,它会调用一个javascript函数,以查看用户是否单击了clear按钮、back space按钮,或者他们是否单击了number按钮。如果它是一个数字按钮,则该函数将把数字添加到文本框中。例如,如果用户点击7然后点击8,然后点击*,然后点击1,文本框将显示:78*1。我无法使javasc

  • 问题内容: 我是python和Flask的新手。我有一个带按钮的Flask Web App。当我单击按钮时,我想执行python方法而不是Javascript方法。我怎样才能做到这一点? 我看过python的示例,它使用这样的表单标签将我重定向到新页面 但我不希望它将我重定向到新页面。我只希望它执行python方法。 我正在为Raspberry Pi机器人汽车制作这个。当我按下前进按钮时,我希望它

  • 问题内容: 我正在尝试编写Django应用程序,而我却被困在单击按钮时如何调用视图函数。 在我的模板中,我有一个如下所示的链接按钮,单击该按钮会将您带到另一个网页: 单击按钮时,我还想调用Django视图函数(以及重定向到目标网站)。查看功能使数据库中的值增加,该值存储了单击按钮的次数。 该是到外部网站(如链接 www.google.com )。现在,单击该按钮时,它将打开一个新窗口,该窗口将您带