异步 Django、Ajax、Jquery 信息

NON*_*AME 9 javascript django ajax jquery

这么大的消息!异步 Django

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

1. 异步视图需要“不需要”AJAX?

根据我掌握的信息,(不知道 AJAX 是什么,但许多 Django 教程都提到了它,所以它在我的学习愿望清单上)

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

这不是 Django 中的异步视图也会做的事情吗?

1A。如果 Async Django 不会完全取代 AJAX,是否值得学习?

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

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

异步 django 也可以替换频道吗?

用推理建议与这些主题相关的事情。例如将 AJAX 与 JSON 一起使用(只是一个示例)

我知道将 Django 转换为 async 需要时间,所以在回答时请记住这一点

JRi*_*dsz 8

我不是 python 开发人员,但我从头开始实现了几个 web 服务器,我想我可以帮助你。

服务器渲染与客户端渲染

在 Web 开发中,有两种向最终用户交付内容的方法,称为服务器渲染和客户端渲染

服务器端渲染 (SSR) — 传统的渲染方法,基本上您页面的所有资源都位于服务器上。然后,当页面被请求时(通常来自 Web 浏览器),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 是服务器渲染框架

正如您在这篇文章中看到的:最简单的 CRUD 示例Hello World 应用程序,您需要使用 python(服务器语言)在 Django 中进行开发。Django 在内部创建您的 html 页面并将它们呈现给您的用户。

React(angular, vue, etc) 是一个客户端渲染框架

想象一下 OMS 提供的 api。这个 api 为我们提供了按国家/地区获取 covid 统计数据的端点:

想象一下你是z代人,对java、python、c#等古语言一无所知。您需要开发一个简单的仪表板,显示感染病毒的第一批国家的 Covid 统计数据。

您的网站将有一个视觉上很酷的效果:加载带有空框的主页,您将显示从前十个国家/地区开始的统计数据。

为了实现这种效果,您将使用 React 渲染一个带有空框的主页,并且您将触发对 api 的多个请求:

您的主页仍在工作,用户正在导航、滚动,几秒钟后,框中会填满统计信息。

因此,我们可以说您的网络执行了异步调用,允许动态加载部分网页...等待等待这是 AJAX :D

异步视图:带有 ASGI 的 Python 异步代码

Python Web 框架的新挑战之一是适应异步模型的潜在优势。

如果您在ASGI下运行,Django 支持编写异步(“async”)视图,以及完全启用异步的请求堆栈。

所述ASGI规范是一个反复的但基本的重新设计,它提供了一个异步服务器/应用接口,具有用于HTTP,HTTP / 2,和的WebSockets支持。

正如您在以下链接中看到的,异步视图不是带有 ajax 的 html 页面,因为使用了 ASGI,我们可以说这是 Django 以异步方式开发的尝试,但在服务器中使用 python:

结论

异步视图不是带有 ajax 的 html 页面,只是一个 python 代码,而是在服务器中以异步方式运行。

你的问题

  1. 异步视图将需要“不需要”AJAX?

    • 异步视图是python(服务器)中的代码和浏览器中的ajax。Async ViewAjax肯定没有关系。
  2. 这不是 Django 中的异步视图也会做的事情吗?

    • 是的,异步视图是一种异步代码,但在服务器端,而不是像 react、angular 等客户端
  3. 如果 Async Django 不会完全取代 AJAX,是否值得学习?

    • 这取决于你的目标。目前,Web 开发人员的工作(查看本页的远程工作部分 -->)需要异步技能,但在客户端,如 react、angular、vue 等。Java、python 和其他强大的语言正在利用其功能来满足后端需求。
  4. 这对频道意味着什么?

    • 作为您的段落,频道可以用于 apis 和 web,但具有服务器策略(python)。
  5. 异步 django 也可以替换频道吗?

    • 我觉得不行。也许频道正在使用或将使用异步技术,如异步视图。