2 回答

TA贡献1818条经验 获得超3个赞
我不是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 统计信息:
想象一下,你来自z世代,你不了解java,python,c#和其他古代语言。您需要开发一个简单的仪表板,显示感染病毒的第一批国家的covid统计数据。
您的网络将具有视觉上的酷炫效果:使用空框加载主页,然后逐个显示从前十个国家/地区开始的统计信息。
为了达到这个效果,你将使用 React 渲染一个带有空框的主页,并且你将触发对 api 的几个请求:
您的主页仍在工作,用户正在导航,滚动,几秒钟后,框中会填充统计信息。
因此,我们可以说您的Web执行了异步调用,允许动态加载部分网页...等待 等待 这是AJAX:D
异步视图:Python 异步代码与 ASGI
Python Web框架的新挑战之一是适应异步模型的潜在好处。
Django支持编写异步(“async”)视图,以及一个完全支持异步的请求堆栈,如果你在ASGI下运行。
ASGI规范是一个迭代但基本的重新设计,它提供了一个异步服务器/应用程序接口,支持HTTP,HTTP / 2和WebSockets。
正如你在下面的链接中看到的,异步视图不是带有ajax的html页面,因为使用ASGI,我们可以说这是Django尝试以异步方式开发,但在服务器中使用python:
结论
异步视图不是带有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 也可以取代通道吗?
我认为不是。也许通道正在使用或将使用异步技术,如异步视图。

TA贡献1802条经验 获得超4个赞
根据我掌握的信息,(不知道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仍然会有它的利基市场。
添加回答
举报