使用Django创建非重新加载动态Web应用程序

时间:2009-07-15 03:15:27

标签: python ajax django

据我所知,对于来自webapp的新请求,您需要重新加载页面以处理并响应该请求。

例如,如果要在帖子上显示评论,则需要重新加载页面,处理评论,然后显示。然而,我想要的是,我希望能够添加注释(例如facebook,其中注释被添加并显示,例如,无需重新加载整个页面),而无需重新加载网页。是否可以只使用没有Javascript / AJAX知识的Django和Python?

我听说有可能使用AJAX(我不知道怎么做),但我想知道是否可以使用Django。

谢谢,

4 个答案:

答案 0 :(得分:8)

您希望在没有任何客户端代码(javascript和ajax只是示例)的情况下执行此操作,并且无需重新加载页面(或至少部分内容)?

如果这是你的问题,那么答案很遗憾,你不能。您需要拥有客户端代码或重新加载页面。

考虑一下,一旦客户端获得了页面,除非

,否则它不会改变
  • 客户端从服务器请求相同的页面,服务器返回并更新一个
  • 该页面有一些更新页面的客户端代码(例如:javascript)。

我无法想象第三种可能性。我没有在Django编码超过30分钟,这对我来说显而易见。如果我错了,请投票:D

答案 1 :(得分:3)

你肯定想使用AJAX。这意味着客户端需要运行一些javascript代码。

如果您不想学习javascript,可以尝试使用pyjamas之类的内容。你可以看看它的例子是HttpRequest here

但我总觉得通过库(比如jQuery)使用直接javascript比尝试强制使用另一种语言更容易理解。

答案 2 :(得分:1)

要做得对,ajax将是一种方式去,但在有限的意义上你可以通过使用iframe来实现同样的事情,iframe就像嵌入在主页内的另一个页面,所以而不是整个刷新页面,您可以刷新内部iframe页面,这可能会产生相同的效果。

有关您可以阅读的iframe模式的更多信息 http://ajaxpatterns.org/IFrame_Call

答案 3 :(得分:1)

也许有一些iFrame和一些Comet / long-polling?在iFrame中提交评论(因此整个页面不会重新加载),然后在长轮询的iFrame中显示结果......

话虽如此,这是一个非常糟糕的设计理念,你可能不想这样做。 AJAX / JavaScript几乎是采用这种方式的方法。

  

我听说AJAX可能......但是我是   想知道是否有可能做到   与Django。

没有理由你不能同时使用这两者 - 特别是Django Web应用程序中的AJAX。 Django提供您的组织和框架需求(以及一个响应AJAX请求的页面),然后在客户端使用一些JavaScript来对Django支持的页面进行AJAX调用,以便正确响应。

我建议你去找一个基本的jQuery教程,它应该解释足够的基本JavaScript来实现这个目的。