从Javascript到Django服务器进行查询

Gar*_*nzo 5 javascript django ajax

我正在尝试为网页添加一些基本的动态功能.如何在客户端使用JavaScript通过服务器端的django访问数据库信息?

我觉得在网页上调用django视图(或其他东西)的JavaScript函数应该很容易,而django视图会向JavaScript函数返回一个值.我不希望JavaScript本身连接到数据库,因为这似乎环绕django(对我来说,这似乎是不正确的).

此外,我希望能够在一个页面上通过JavaScript执行多个数据库请求.一个例子是用于创建发票的网页.发票的每个附加行都需要对数据库进行新查询.然后,根据添加到发票中的产品,需要额外的查询来确定产品的价格.我得到的是动态完成的一个页面内对数据库的多个查询.

基本上,我希望django进行数据库搜索并将信息传递给JavaScript.

ust*_*tun 6

作为客户端的Javascript无法直接访问您的数据库.它唯一能做的就是向Django发出请求.如果要在不重新加载页面的情况下执行该请求,则需要使用ajax调用.

首先,像往常一样准备你的视图而不用javascript.看看jquery并有效地请求ajax调用以获取相同的视图.请参阅http://api.jquery.com/jQuery.get/http://api.jquery.com/jQuery.post/

请求成功后,使用get/post调用的成功回调填充容器.

下面是一个简单的示例Django应用程序使用jQuery AJAX调用:http://dl.dropbox.com/u/83342/ajaxapp.tar.gz


Ben*_*rns 3

为您所要求的内容添加一些“标准”术语 - 听起来您正在寻找 Django 的 AJAX 功能。

首先,坏消息:没有任何专门针对此类功能的 Django 特性。

好消息:您正在谈论的 Django 视图将像其他视图一样接受 HTTP 请求。您需要做的是编写一些 JavaScript 代码来生成自己的 HTTP 请求并像浏览器一样使用视图的输出。

更好的消息:像 JQuery 这样的 JavaScript 库可以使编写可靠的客户端异步请求(您想要的)变得更加简单。事实上,我强烈建议使用像 JQuery 这样的库,而不是尝试编写自己的请求处理代码。在一个浏览器/机器上可靠地工作是一个简单的问题,但在当今所有广泛使用的浏览器上可靠地工作却非常困难且耗时。

希望这可以帮助!

  • 这对很多人有帮助!我慢慢意识到需要 AJAX,但无法从概念上理解 Javascript 函数、django 视图和 AJAX 函数(这听起来像是一个糟糕的笑话的开头)如何结合在一起来完成我需要的事情。 (2认同)