我不是 python 开发人员,但我从头开始实现了几个 web 服务器,我想我可以帮助你。
服务器渲染与客户端渲染
在 Web 开发中,有两种方法可以向最终用户提供内容,称为 Server rendering and client side rendering
服务器端渲染 (SSR) — 传统的渲染方法,基本上您页面的所有资源都存放在服务器上。然后,当页面被请求(通常来自网络浏览器)时,会下载 Html、JS 和 CSS。框架也可以动态地根据后端逻辑创建 html 并最终下载它。在这一点上,许多框架为立即创建具有“惊人”功能的应用程序提供了奇迹。
技术:java、c#、python、nodejs 等
客户端渲染 (CSR) — 有时称为“前端渲染”是一种更新的渲染方法,它依赖于通过 JavaScript 框架在客户端(浏览器)上执行的 JS .因此,当请求页面时,会下载一个最小的、很少的或空的 index.html、css 和 js。 javascript 负责发送或接收数据并更新页面的最小部分无需刷新整个页面。。最后,当用户单击或触发某些事件时,javascript 将使用异步调用 (ajax) 通常将 数据 发送或接收到 api rest (json)。
技术:react、angular、vue、aurelia、jquery、纯javascript等
Django 是服务器渲染框架
如您所见:Simplest CRUD example 和 Hello World app,您需要 python(服务器语言)在 Django 中进行开发。 Django 在内部创建您的 html 页面并将它们呈现给您的用户。
React(angular, vue, etc) 是一个客户端渲染框架
想象一个由 OMS 提供的 api。这个 api 为我们和端点提供了按国家/地区获取 covid 统计信息:
假设你是 z 世代,你不懂 java、python、c# 和其他古人的语言。您需要开发一个简单的仪表板,显示感染病毒的第一批国家的 covid 统计数据。
您的网页将具有视觉上的酷炫效果:用空框一一加载主页,您将显示前十个国家/地区的统计数据。
为了达到这个效果,你将使用 React 渲染一个带有空框的主页,你会触发几个对 api 的请求:
您的主页仍在工作,用户正在导航、滚动,几秒钟后,框会填满统计信息。
因此,我们可以说您的网站执行了 ASYNCHRONOUS 调用,从而允许动态加载网页的某些部分...等等 这是 AJAX :D
异步视图:带有 ASGI 的 Python 异步代码
Python Web 框架面临的新挑战之一是适应异步模型的潜在优势。
如果您在 ASGI 下运行,Django 支持编写异步(“async”)视图,以及完全启用异步的请求堆栈。
ASGI 规范是一种迭代但基本的重新设计,它提供了一个异步服务器/应用程序接口,支持 HTTP、HTTP/2 和 WebSockets。
正如你在下面的链接中看到的,异步视图不是带有ajax的html页面,因为使用ASGI,我们可以说这是Django以异步方式开发的尝试,但是在服务器中使用python:
结论
异步视图不是带有 ajax 的 html 页面,只是一个 python 代码,而是以异步方式在服务器中运行。
您的问题
- 异步视图与 AJAX?
- 异步视图是 python(服务器)中的代码和浏览器中的 ajax。 Async View 和 Ajax 肯定不相关。
- 这不是 Django 中的异步视图也会做的事情吗?
- 是的,Async Views 是一种异步代码,但在服务器端,而不是在客户端,如 react、angular 等
- 如果 Async Django 不会完全替代 AJAX,是否值得学习?
- 这取决于您的目标。目前 web 开发人员 的工作(查看此页面的远程工作部分 -->)正在请求异步技能,但在客户端,如 react、angular、vue 等。Java、python 和其他强大的语言正在使用它满足后端需求的能力。
- 这对频道意味着什么?
- 作为您的段落,频道可以用于 api 和 web,但具有服务器策略 (python)。
- async django 也可以替换频道吗?
- 我认为没有。也许频道正在使用或将使用异步视图等异步技术。