我对所有这些python事情都是全新的,我已经搜索了我的问题,但没有结果,所以我依靠你的帮助人员:)
我有一个带按钮的模板文件:
<button class="btn" value="{{invoice.number}}">Send</button>
在不同的文件中,我有一个从另一个文件运行函数的类:
class ReminderManual(webapp2.RequestHandler):
...
for inv in invoices:
is_send = reminder.send(inv)
我想:
按下按钮时运行此类
显示is_send值
我有什么想法可以做到吗?
答案 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表单机制:
答案 1 :(得分:0)
该按钮需要一个onclick处理程序,因此它知道该怎么做。 onclick处理程序是一个javascript函数,通过url发送新请求。因此,您的应用需要处理该网址,并在请求到达网址时执行该类。
使用jquery,您可以轻松地使onclick处理程序处理对URL的Ajax请求,并使用is_send的值进行响应。仍然需要app中的url处理程序,它会调用该类。
我看到你添加了django作为标签。使用django,您可以将按钮作为表单的一部分,并使用django的表单处理来执行该类,并推回is_send的值。