单击html按钮上的python类

时间:2014-05-23 14:35:41

标签: python html django google-app-engine webapp2

我对所有这些python事情都是全新的,我已经搜索了我的问题,但没有结果,所以我依靠你的帮助人员:)

我有一个带按钮的模板文件:

<button class="btn" value="{{invoice.number}}">Send</button>

在不同的文件中,我有一个从另一个文件运行函数的类:

class ReminderManual(webapp2.RequestHandler):
...
    for inv in invoices:
        is_send = reminder.send(inv)

我想:

  1. 按下按钮时运行此类

  2. 显示is_send值


  3. 我有什么想法可以做到吗?

2 个答案:

答案 0 :(得分:3)

如果您不想重新加载整个页面以获得结果,您可以使用JQuery和Ajax进行以下操作:

在HTML中,您有

<button class="btn" value="{{invoice.number}}" id="myButton">Send</button>

以及稍后的文件(在结束</body>标记之前):

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
    jQuery(document).ready(function() {
        $('#myButton').on('click', function (e) {
            var invoice_number = $('#myButton').val();
            var data = { invoice_number:invoice_number };
            var args = { dataType: "json", type:"POST", url:"/my_ajax_url/",
                        data:data, complete:ajax_call_complete };
            $.ajax(args);
        });
    });
    var ajax_call_complete = function(res, status) {
        data = jQuery.parseJSON(res.responseText);
        // use data as a json response object here and
        // do something with the response data
    }
</script>

在Javascript中,/my_ajax_url/将是服务器上的请求处理程序运行的URL。它通过Ajax调用,参数作为POST参数提供(在代码示例中,按钮的值作为参数invoice_number发送)。

我通常设置我的服务器Ajax请求以返回JSON,然后由回调方法处理(在示例中为ajax_call_complete)。在这里,您可以通过显示消息,修改某些HTML元素等来检查错误并向用户显示结果。

如果要提交完整页面而不是使用Ajax,则应使用Django表单机制:

https://docs.djangoproject.com/en/1.6/topics/forms/

答案 1 :(得分:0)

该按钮需要一个onclick处理程序,因此它知道该怎么做。 onclick处理程序是一个javascript函数,通过url发送新请求。因此,您的应用需要处理该网址,并在请求到达网址时执行该类。

使用jquery,您可以轻松地使onclick处理程序处理对URL的Ajax请求,并使用is_send的值进行响应。仍然需要app中的url处理程序,它会调用该类。

我看到你添加了django作为标签。使用django,您可以将按钮作为表单的一部分,并使用django的表单处理来执行该类,并推回is_send的值。