【发布时间】:2017-11-06 12:30:20
【问题描述】:
我是 Django 新手,已经完成了 7 部分教程,现在我正在尝试通过制作自己的应用来了解更多信息。
假设您正在制作一个交互式数据可视化应用程序,其中前端由 d3(或您最喜欢的 JS 库)提供支持,并且您的数据来自服务器。由于您的数据很大,您首先必须将其加载到服务器内存中(可能来自二进制文件,或者您存储它)。然而,您不希望您的用户在可以看到网站的其余部分时看到一个空白页面(可能为交互式数据填写一些参数)。
当用户请求网页时,如何在 Django 仍然呈现页面以及发送 POST 请求以更新某些服务器端信息的同时,在服务器的内存中加载和维护数据?
【问题讨论】:
-
动态网页通常使用 AJAX。 w3schools.com/xml/ajax_intro.asp。我认为 Django 有一个叫做 Django Channels 的东西,它也可以让你做类似的事情。只是一些有用的信息:在您的 HTTPResponse 中,您可以更改“Content-Disposition”以从服务器获取不同的数据。通常,HTTPResponse 将使用 HTML 更改网页。 “Content-Disposition”允许 API 发送 JSON 数据而不是网页,并允许您在不更改网页的情况下下载文件。
-
我认为您问题的另一部分是关于让服务器发送大数据。这可以通过 StreamingHttpResponse 来完成,它使用一个生成器来迭代将数据发送到客户端,同时仍然能够处理其他请求。
-
@HashSplat 你能做一个模拟例子吗?
-
在这里寻找一个很好的例子。 stackoverflow.com/questions/20306981/… 和这里 impythonist.wordpress.com/2015/06/16/…
标签: python django python-3.x