2010-06-15 48 views
0

我目前有一个网页,用户输入一些数据,然后点击一个提交按钮。我在views.py中处理数据,然后使用相同的Django模板返回并显示原始数据和结果。我想要做的是尝试给它多一点现代的外观和感觉。你知道这样的事情,页面不刷新,但显示旋转磁盘直到显示结果。我认为这意味着使用Ajax?修改这样一个简单的应用程序以使用Ajax有多困难?涉及什么?什么是最好的工具使用? JQuery的?Django:如何更改我的简单应用程序以使用Ajax?

回答

1

所有你需要做的是submit用ajax

实例形式:

$('#form').bind('submit', function(){ 

    $.ajax({url:$(this).attr('action'), 
      type: "POST", 
      data: {//form inputs}, 
      success:function(response){ 
       // code to update DOM 
      } 
      }); 
    return false; 
}); 

这将用ajax提交表单和重新加载页面停止。

我建议你看看django ajax example,这对处理django上的ajax有一个干净的解释。

2

我倾向于在非常精细的级别上编写我的视图,而不是让一个视图呈现整个页面。这使我可以采取所有这些组件并以不同的方式重用它们。

例如,如果我有一个窗体和下面的窗体的结果列表视图,我会写一个窗体的最低限度视图,列表,然后我会写一个简单的视图为“页面”将他们联系在一起。

在您的页面视图中,您可以通过将原始请求对象传递给它们以及其他所需的任何其他视图来调用其他视图方法。您可以将.context从视图的响应中包装到DIV中,或者可以通过javascript动态更新(jQuery使其相对简单)。

为了用极简主义的视图更新这些DIV,你需要在你的urls.py中设置它们当然。您可能会使用jQuery将一些GET或POST数据传递给这些较小的视图。

此外,我建议使用AJAX作为“最后的手段”。通过这个我的意思是,如果你有一个相对较小的静态数据列表,只需将它们全部传递给JavaScript中的主视图,并在客户端对其执行操作。但是,如果你有一个更大的数据集或者一些非常快速地改变动态内容(或任何其他类型的不可靠数据),这对AJAX很有用。

相关问题