如何使用 AJAX 和 Django 从 SQL 数据库更新网站上的字段数据

Posted

技术标签:

【中文标题】如何使用 AJAX 和 Django 从 SQL 数据库更新网站上的字段数据【英文标题】:How to update data on field on a website from SQL database with AJAX and Django 【发布时间】:2012-09-17 16:49:07 【问题描述】:

我正在创建一个小型 Web 应用程序,我想在不刷新整个页面的情况下从服务器上的 SQL 数据库更新字段的最新数据。这可能吗?如果可以,我该怎么做?

我认为我可以使用 jQuery 不时刷新整个页面,但我认为这不是很明智,尤其是在较重的网站上,因为这会导致大量流量。相反,我想用数据库中的最新数据更新几个字段。

var refresh = function() 
   location.reload(true);


$(document).ready(function() 
   setTimeout(refresh, 10000);
);

到目前为止,这就是我所拥有的。

我发现了另一个类似的问题,有人建议使用 XMLHttpRequest。是否可以使用它从 SQL 数据库中获取一些数据?

当试图找出可能的 XMLHttpRequest 解决方案时,我发现可以通过使用一些 .ASP 文件将该 XMLHtppRequest 转换为 SQL 查询,但据我所知,整个过程需要一些 Microsoft服务器框架,无论如何,与我正在编程的整个应用程序的大小和目的相比,它似乎是相当粗糙和艰难的方式。尤其是当我的整个网站都在 Linux 上运行时。

此外,我已经阅读了很多关于 websockets 和观察者模式的文章。从理论上讲,声音很棒,正是我需要的,但是,我对这些东西很陌生,如果我能避免的话,我还不想那样做。但是如果有一些简单的方法可以做到这一点并且有人可以向我展示一个很好的教程,我也会很高兴。

但目前我主要是在寻找一种方法来进行“旧式民意调查”,无论它多么无效。我认为这仍然比重新加载整个页面更好。

非常感谢所有类型的建议。

【问题讨论】:

【参考方案1】:

我认为你在考虑这个问题。这是一个已解决的问题,现在几乎所有网站都在使用它:使用 AJAX。 JQuery 有一个内置的 ajax 功能,可以很容易地发送 ajax 请求。

在服务器端,创建一个 url 端点。理想情况下,您将拥有存储在数据库中的每个资源的唯一端点。例如:

http://mywebsite.com/book/?uid=124234

理论上,这个 url 将为 ID 为 124234 的书提供一个 CRUD 接口。您可以通过发出 POST 请求来更新这个对象。或者您可以通过发出 GET 请求来获取其所有数据。

我希望这会有所帮助。

【讨论】:

我不确定我是否真的理解,尤其是服务器端。我想使用 AJAX,但我真的不知道如何使用它进行查询。我需要为数据库中的每个项目创建一个唯一的端点吗?以及如何做到这一点,因为数据库是独立于网站更新的。该网站只是阅读它。这些端点是否也意味着站点的 URL 会以某种方式发生变化?一切都应该发生在与实际页面相同的站点上,即。在 mywebsite.com 上。到目前为止,我只做过静态网页,就在几天前开始尝试这些类型的东西。 您需要在数据库之间使用某种应用程序服务器来处理更新资源的逻辑。您不必编写查询,因为许多框架已经内置了(RoR、Django、Node、CodeIgnighter 等)。选择一个您觉得最舒服的端点并创建一个端点。然后,在该端点应用更新逻辑。例如:/book/?uid=125234。首先,找到 id 为 125234 的书。然后在 http 响应中返回该资源的信息。完成。【参考方案2】:

如果您在框架中使用 Django,那么我建议您查看 django-socketio

【讨论】:

以上是关于如何使用 AJAX 和 Django 从 SQL 数据库更新网站上的字段数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在django中使用类似AJAX的视图?

如何在 Django 中使用 AJAX 从 html 中正确调用函数/url?

Django - 如何正确地将列表从模板发送到 AJAX 以查看?

如何从 Django 视图中获取价值到 Ajax 成功函数中

如何在html中检索Django表单对象以便以后使用AJAX

Django - Ajax 注册