我目前有一个网页,用户输入一些数据,然后点击提交按钮。我处理views.py中的数据,然后使用相同的Django模板返回并显示原始数据和结果。我想做的是尝试给它一点现代的外观和感觉。您知道这种情况,页面不刷新但显示旋转磁盘,直到显示结果。我认为这意味着使用Ajax?修改像这样的简单应用程序使用Ajax有多难?涉及什么?什么是最好的工具? JQuery的?
答案 0 :(得分:2)
我倾向于在非常精细的层面上编写我的视图,而不是让一个视图呈现整个页面。这允许我采用所有这些组件并以不同方式重用它们。
例如,如果我在表单下面有一个表单和一个结果列表的视图,我会为表单编写一个极简主义视图,列表,然后我会为“页面”编写一个简单的视图将它们联系在一起。
在页面视图中,您可以通过将原始请求对象及其他所需内容传递给其他方法来调用其他视图方法。你可以从DIV中的那些视图的响应中包装.context,或者反过来可以通过javascript动态更新(jQuery使得它相对无痛)。
为了使用极简主义视图更新这些DIV,您当然需要在urls.py中设置它们。您可能会使用jQuery将一些GET或POST数据传递给那些较小的视图。
另外,我建议使用AJAX作为“最后的手段”。我的意思是,如果你有一个相对较小的静态数据列表,只需将它全部传递给javascript中的主视图,然后在客户端进行操作即可。但是如果你有一个更大的数据集或一些非常快速变化的动态内容(或任何其他类型的不可靠数据),这对AJAX来说是一个很好的用途。
答案 1 :(得分: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 :(得分:1)
这个jquery plugin对你想要的很有用。