Django Asyc Views是ajax的替代品吗?

我有一些困惑,并希望通过提出一些问题来清除它们。

根据这个Ajax定义:

Ajax 是一组 Web 开发技术,在客户端使用许多 Web 技术来创建异步 Web 应用程序。使用Ajax,Web应用程序可以从服务器异步发送和检索数据,而不会干扰现有页面的显示和行为。

1. 它与 Django 3.0 中提供的异步视图功能不相同吗?

1A.如果 Async Django 不会完全取代 AJAX,那么它值得学习吗?

2. 这对渠道意味着什么?

Channels是一个采用Django并将其功能扩展到HTTP之外的项目 - 处理WebSockets,聊天协议,IoT协议等。它建立在名为ASGI的Python规范之上。

异步 django 也可以取代通道吗?

通过推理建议与这些主题相关的内容。例如,将AJAX与JSON一起使用(只是一个例子)

我知道将Django转换为异步需要时间,因此在回答时要牢记这一点


GCT1015
浏览 147回答 2
2回答

泛舟湖上清波郎朗

我不是Python开发人员,但我从头开始实现了几个Web服务器,我想我可以帮助你。服务器渲染与客户端渲染在Web开发中,有两种方法可以向最终用户交付内容,称为服务器呈现和客户端呈现服务器端呈现 (SSR) — 传统的呈现方法,基本上页面的所有资源都位于服务器上。然后,当请求页面(通常来自Web浏览器)时,下载Html,JS和CSS。框架还可以动态地基于后端逻辑创建html,并最终下载它。在这一点上,许多框架为立即创建具有“惊人”功能的应用程序提供了奇迹。技术: java, c#, python, nodejs, etc客户端渲染(CSR) - 有时称为“前端渲染”是一种较新的渲染方法,它依赖于通过JavaScript框架在客户端(浏览器)上执行的JS。因此,当请求页面时,下载了最小,很少或空的索引.html,css和js。在这里,javascript负责发送或接收数据,并在不刷新整个页面的情况下更新页面的最小部分。最后,当用户单击或触发某些事件时,javascript 将使用异步调用 (ajax) 将通常的数据发送或接收到 api rest (json)。技术:react,angular,vue,aurelia,jquery,纯javascript等Django 是 Server Rendering Framework正如你所看到的:最简单的CRUD示例和Hello World应用程序,你需要python(服务器语言)在Django中开发。Django在内部创建你的html页面,并将它们呈现给你的用户。React(angular,vue等)是一个客户端渲染框架想象一下 OMS 提供的 API。此 API 为我们提供了和端点,以便按国家/地区获取 covid 统计信息:https://oms.api/covid/stats/country/{国家/地区 id}想象一下,你来自z世代,你不了解java,python,c#和其他古代语言。您需要开发一个简单的仪表板,显示感染病毒的第一批国家的covid统计数据。您的网络将具有视觉上的酷炫效果:使用空框加载主页,然后逐个显示从前十个国家/地区开始的统计信息。为了达到这个效果,你将使用 React 渲染一个带有空框的主页,并且你将触发对 api 的几个请求:(中国)https://oms.api/covid/stats/country/ch(美国)https://oms.api/covid/stats/country/eu(意大利)https://oms.api/covid/stats/country/it您的主页仍在工作,用户正在导航,滚动,几秒钟后,框中会填充统计信息。因此,我们可以说您的Web执行了异步调用,允许动态加载部分网页...等待 等待 这是AJAX:D异步视图:Python 异步代码与 ASGIPython Web框架的新挑战之一是适应异步模型的潜在好处。Django支持编写异步(“async”)视图,以及一个完全支持异步的请求堆栈,如果你在ASGI下运行。ASGI规范是一个迭代但基本的重新设计,它提供了一个异步服务器/应用程序接口,支持HTTP,HTTP / 2和WebSockets。正如你在下面的链接中看到的,异步视图不是带有ajax的html页面,因为使用ASGI,我们可以说这是Django尝试以异步方式开发,但在服务器中使用python:https://docs.djangoproject.com/en/3.1/topics/async/https://www.encode.io/articles/hello-asgi结论异步视图不是带有ajax的html页面,只是一个python代码,而是以异步方式在服务器中运行。您的问题Async Views vs AJAX?异步视图是 python(服务器)中的代码,也是浏览器中的 ajax 代码。当然,异步视图和Ajax并不相关。这不也是Django中的异步视图吗?是的,异步视图是一种异步代码,但在服务器中,而不是在客户端,如react,angular等如果 Async Django 不会完全取代 AJAX,那么它值得学习吗?这取决于你的目标。目前,Web开发人员的工作(检查此页面的远程工作部分 - >)正在请求异步技能,但在客户端,如react,angular,vue等。Java,python和其他强大的语言正在利用它的力量来满足后端需求。这对渠道意味着什么?作为你的段落,通道可以用于api和Web,但具有服务器策略(python)。异步 django 也可以取代通道吗?我认为不是。也许通道正在使用或将使用异步技术,如异步视图。

慕虎7371278

根据我掌握的信息,(不知道AJAX是什么,但许多Django教程都提到了它,所以它在我的学习愿望清单上)AJAX 代表 Asynchronous Javascript 和 XML。它归结为执行异步调用,允许动态加载部分网页。这意味着在更改数据时仅刷新页面的一部分,而不是整个页面。它允许您的页面从服务器或API获取数据,并允许用户同时查看页面。从 API 检索信息后,可以更新视图以匹配新数据。这不也是Django中的异步视图吗?是的,看起来Django将允许您在视图本身中执行这些技术。可能有一些用例可以使用AJAX,而Django的异步功能不能,但是如果不研究它,我无法给出明确的答案。1A.如果 Async Django 不会完全取代 AJAX,那么它值得学习吗?AJAX是否仍然值得学习。我会说是的。我是所有行业的杰克的心态,没有大师。如果你打算用Django度过余生,也许这是不值得的。然而,AJAX在其他技术中很常见,所以如果你打算冒险在Django堆栈之外,那么这将是值得学习的。如果您深入研究 AJAX,您还将获得了解异步通信工作原理的一些基本原则的额外好处。这对渠道意味着什么?同样,这只是推测,但我假设通道将提供异步Django不会立即具有的其他功能(在你提到的摘录中:处理WebSockets,聊天协议,物联网协议等等。Django作为异步本身并不提供这些功能)。随着时间的推移,Django可能会采用其中一些功能,但我认为Channels仍然会有它的利基市场。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript