久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Django HTTP請(qǐng)求的處理流程?

Django HTTP請(qǐng)求的處理流程?

來(lái)源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-09-13 17:43:36 1663062216

  Django 和其他 Web 框架的 HTTP 處理的流程大致相同,Django 處理一個(gè) Request 的過(guò)程是首先通過(guò)中間件,然后再通過(guò)默認(rèn)的 URL 方式進(jìn)行的。我們可以在 Middleware 這個(gè)地方把所有 Request 攔截住,用我們自己的方式完成處理以后直接返回 Response。

  (1) 加載配置

  Django 的配置都在 “Project/settings.py” 中定義,可以是 Django 的配置,也可以是自定義的配置,并且都通過(guò) django.conf.settings 訪問(wèn),非常方便。

  (2) 啟動(dòng)

  最核心動(dòng)作的是通過(guò) django.core.management.commands.runfcgi 的 Command 來(lái)啟動(dòng),它運(yùn)行 django.core.servers.fastcgi 中的 runfastcgi,runfastcgi 使用了 flup 的 WSGIServer 來(lái)啟動(dòng) fastcgi 。而 WSGIServer 中攜帶了 django.core.handlers.wsgi 的 WSGIHandler 類的一個(gè)實(shí)例,通過(guò) WSGIHandler 來(lái)處理由 Web 服務(wù)器(比如 Apache,Lighttpd 等)傳過(guò)來(lái)的請(qǐng)求,此時(shí)才是真正進(jìn)入 Django 的世界。

Django HTTP 請(qǐng)求的處理流程

  (3) 處理 Request

  當(dāng)有 HTTP 請(qǐng)求來(lái)時(shí),WSGIHandler 就開(kāi)始工作了,它從 BaseHandler 繼承而來(lái)。WSGIHandler 為每個(gè)請(qǐng)求創(chuàng)建一個(gè) WSGIRequest 實(shí)例,而 WSGIRequest 是從 http.HttpRequest 繼承而來(lái)。接下來(lái)就開(kāi)始創(chuàng)建 Response 了。

  (4) 創(chuàng)建 Response

  BaseHandler 的 get_response 方法就是根據(jù) request 創(chuàng)建 response,而具體生成 response 的動(dòng)作就是執(zhí)行 urls.py 中對(duì)應(yīng)的 view 函數(shù)了,這也是 Django 可以處理“友好 URL ”的關(guān)鍵步驟,每個(gè)這樣的函數(shù)都要返回一個(gè) Response 實(shí)例。此時(shí)一般的做法是通過(guò) loader 加載 template 并生成頁(yè)面內(nèi)容,其中重要的就是通過(guò) ORM 技術(shù)從數(shù)據(jù)庫(kù)中取出數(shù)據(jù),并渲染到 Template 中,從而生成具體的頁(yè)面了。

  (5) 處理 Response

  Django 返回 Response 給 flup,flup 就取出 Response 的內(nèi)容返回給 Web 服務(wù)器,由后者返回給瀏覽器。

  總之,Django 在 fastcgi 中主要做了兩件事:處理 Request 和創(chuàng)建 Response,而它們對(duì)應(yīng)的核心就是“ urls 分析”、“模板技術(shù)”和“ ORM 技術(shù)”。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
軟件定制開(kāi)發(fā)中的敏捷開(kāi)發(fā)是什么?

軟件定制開(kāi)發(fā)中的敏捷開(kāi)發(fā)是什么軟件定制開(kāi)發(fā)中的敏捷開(kāi)發(fā),從宏觀上看,是一個(gè)高度關(guān)注人員交互,持續(xù)開(kāi)發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái),它為眾多硬件平臺(tái)和開(kāi)發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡(jiǎn)化了開(kāi)發(fā)過(guò)程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動(dòng)備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問(wèn)題是什么?

ORM(對(duì)象關(guān)系映射)解決的主要問(wèn)題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19
快速通道