2 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
我不是Python開發(fā)人員,但我從頭開始實(shí)現(xiàn)了幾個(gè)Web服務(wù)器,我想我可以幫助你。
服務(wù)器渲染與客戶端渲染
在Web開發(fā)中,有兩種方法可以向最終用戶交付內(nèi)容,稱為服務(wù)器呈現(xiàn)和客戶端呈現(xiàn)
服務(wù)器端呈現(xiàn) (SSR) — 傳統(tǒng)的呈現(xiàn)方法,基本上頁面的所有資源都位于服務(wù)器上。然后,當(dāng)請求頁面(通常來自Web瀏覽器)時(shí),下載Html,JS和CSS??蚣苓€可以動(dòng)態(tài)地基于后端邏輯創(chuàng)建html,并最終下載它。在這一點(diǎn)上,許多框架為立即創(chuàng)建具有“驚人”功能的應(yīng)用程序提供了奇跡。
技術(shù): java, c#, python, nodejs, etc
客戶端渲染(CSR) - 有時(shí)稱為“前端渲染”是一種較新的渲染方法,它依賴于通過JavaScript框架在客戶端(瀏覽器)上執(zhí)行的JS。因此,當(dāng)請求頁面時(shí),下載了最小,很少或空的索引.html,css和js。在這里,javascript負(fù)責(zé)發(fā)送或接收數(shù)據(jù),并在不刷新整個(gè)頁面的情況下更新頁面的最小部分。最后,當(dāng)用戶單擊或觸發(fā)某些事件時(shí),javascript 將使用異步調(diào)用 (ajax) 將通常的數(shù)據(jù)發(fā)送或接收到 api rest (json)。
技術(shù):react,angular,vue,aurelia,jquery,純javascript等
Django 是 Server Rendering Framework
正如你所看到的:最簡單的CRUD示例和Hello World應(yīng)用程序,你需要python(服務(wù)器語言)在Django中開發(fā)。Django在內(nèi)部創(chuàng)建你的html頁面,并將它們呈現(xiàn)給你的用戶。
React(angular,vue等)是一個(gè)客戶端渲染框架
想象一下 OMS 提供的 API。此 API 為我們提供了和端點(diǎn),以便按國家/地區(qū)獲取 covid 統(tǒng)計(jì)信息:
想象一下,你來自z世代,你不了解java,python,c#和其他古代語言。您需要開發(fā)一個(gè)簡單的儀表板,顯示感染病毒的第一批國家的covid統(tǒng)計(jì)數(shù)據(jù)。
您的網(wǎng)絡(luò)將具有視覺上的酷炫效果:使用空框加載主頁,然后逐個(gè)顯示從前十個(gè)國家/地區(qū)開始的統(tǒng)計(jì)信息。
為了達(dá)到這個(gè)效果,你將使用 React 渲染一個(gè)帶有空框的主頁,并且你將觸發(fā)對 api 的幾個(gè)請求:
您的主頁仍在工作,用戶正在導(dǎo)航,滾動(dòng),幾秒鐘后,框中會(huì)填充統(tǒng)計(jì)信息。
因此,我們可以說您的Web執(zhí)行了異步調(diào)用,允許動(dòng)態(tài)加載部分網(wǎng)頁...等待 等待 這是AJAX:D
異步視圖:Python 異步代碼與 ASGI
Python Web框架的新挑戰(zhàn)之一是適應(yīng)異步模型的潛在好處。
Django支持編寫異步(“async”)視圖,以及一個(gè)完全支持異步的請求堆棧,如果你在ASGI下運(yùn)行。
ASGI規(guī)范是一個(gè)迭代但基本的重新設(shè)計(jì),它提供了一個(gè)異步服務(wù)器/應(yīng)用程序接口,支持HTTP,HTTP / 2和WebSockets。
正如你在下面的鏈接中看到的,異步視圖不是帶有ajax的html頁面,因?yàn)槭褂肁SGI,我們可以說這是Django嘗試以異步方式開發(fā),但在服務(wù)器中使用python:
結(jié)論
異步視圖不是帶有ajax的html頁面,只是一個(gè)python代碼,而是以異步方式在服務(wù)器中運(yùn)行。
您的問題
Async Views vs AJAX?
異步視圖是 python(服務(wù)器)中的代碼,也是瀏覽器中的 ajax 代碼。當(dāng)然,異步視圖和Ajax并不相關(guān)。
這不也是Django中的異步視圖嗎?
是的,異步視圖是一種異步代碼,但在服務(wù)器中,而不是在客戶端,如react,angular等
如果 Async Django 不會(huì)完全取代 AJAX,那么它值得學(xué)習(xí)嗎?
這取決于你的目標(biāo)。目前,Web開發(fā)人員的工作(檢查此頁面的遠(yuǎn)程工作部分 - >)正在請求異步技能,但在客戶端,如react,angular,vue等。Java,python和其他強(qiáng)大的語言正在利用它的力量來滿足后端需求。
這對渠道意味著什么?
作為你的段落,通道可以用于api和Web,但具有服務(wù)器策略(python)。
異步 django 也可以取代通道嗎?
我認(rèn)為不是。也許通道正在使用或?qū)⑹褂卯惒郊夹g(shù),如異步視圖。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
根據(jù)我掌握的信息,(不知道AJAX是什么,但許多Django教程都提到了它,所以它在我的學(xué)習(xí)愿望清單上)
AJAX 代表 Asynchronous Javascript 和 XML。它歸結(jié)為執(zhí)行異步調(diào)用,允許動(dòng)態(tài)加載部分網(wǎng)頁。這意味著在更改數(shù)據(jù)時(shí)僅刷新頁面的一部分,而不是整個(gè)頁面。它允許您的頁面從服務(wù)器或API獲取數(shù)據(jù),并允許用戶同時(shí)查看頁面。從 API 檢索信息后,可以更新視圖以匹配新數(shù)據(jù)。
這不也是Django中的異步視圖嗎?
是的,看起來Django將允許您在視圖本身中執(zhí)行這些技術(shù)??赡苡幸恍┯美梢允褂肁JAX,而Django的異步功能不能,但是如果不研究它,我無法給出明確的答案。
1A.如果 Async Django 不會(huì)完全取代 AJAX,那么它值得學(xué)習(xí)嗎?
AJAX是否仍然值得學(xué)習(xí)。我會(huì)說是的。我是所有行業(yè)的杰克的心態(tài),沒有大師。如果你打算用Django度過余生,也許這是不值得的。然而,AJAX在其他技術(shù)中很常見,所以如果你打算冒險(xiǎn)在Django堆棧之外,那么這將是值得學(xué)習(xí)的。如果您深入研究 AJAX,您還將獲得了解異步通信工作原理的一些基本原則的額外好處。
這對渠道意味著什么?
同樣,這只是推測,但我假設(shè)通道將提供異步Django不會(huì)立即具有的其他功能(在你提到的摘錄中:處理WebSockets,聊天協(xié)議,物聯(lián)網(wǎng)協(xié)議等等。Django作為異步本身并不提供這些功能)。隨著時(shí)間的推移,Django可能會(huì)采用其中一些功能,但我認(rèn)為Channels仍然會(huì)有它的利基市場。
添加回答
舉報(bào)