溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django 框架原理

發布時間:2020-07-21 04:30:39 來源:網絡 閱讀:156 作者:liveyoufo 欄目:系統運維

一、什么是web服務
1.web服務包含兩個部分,http服務器,app應用程序.
2.httpd服務器負責解析數據,并封裝調用socket請求
3.app應用負責業務邏輯,包括增刪改查等操作
4.http服務器一旦接受客戶端請求就會解析數據并調用app應用,app解析完數據后返回給http服務,并響應給客戶端

二、客戶端和web服務通信,web服務和app應用怎么通信
1.客戶端和web服務通信
客戶端和web服務通信使用http協議
C/S 模型,
request請求包括:
第一部分:請求行
第二部分:請求頭
第三部分:空行
第四部分: 請求體
response包括:
第一部分:狀態行,由HTTP/1.1(協議版本) 200(狀態碼) OK(狀態碼的描述) 構成
第二部分:響應頭,由一些鍵值對構成,用來說明客戶端要使用的一些附加信息
第三部分:空行,響應頭后面的空行時必須的
第四部分:響應正文,服務器返回給客戶端的文本信息

2.web服務和app使用怎么通信
在web服務和app應用之間需要定義一個接口規則,或者叫協議,規定兩者之間數據通信方式,即web服務以怎樣的方式調用app應用.
python規定,web服務的接口規則是wsgi協議,wsgi協議對于server和app接口定義如下:
server調用方式:
response = application(environ, start_response)
application接口編碼:
def application(environ, start_response):
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'),]
start_response(status, response_headers)
return [b'hello',]

只要遵從上述調用方式,均實現了wsgi協議.

python內置了wsgiref模塊,用于提供server服務,django使用此模塊開發測試,但是生產環境使用其他模塊來處理
一次web服務到app響應的流程圖如下:

django 框架原理

三、定義一個簡單的wsgi服務器框架
django框架的server部分由python內置的wsgiref模塊提供,我們只需要編寫application應用程序部分
from wsgiref.simple_server import make_server

def app(environ, start_response): # wsgi協議規定的application部分的編碼形式,可在此基礎上擴展
status = '200 OK'
respones_headers = []

start_response(status, response_headers)
return [b'hello',]
if name == 'main':
httpd = make_server('127.0.0.1', 8080, app)
httpd.serve_forever()

wsgi框架請求響應流程:
django 框架原理

四、django的server實現
django使用的server是基于python內置的wsgiref模塊的simple_server,每次django啟動都會執行run函數,run函數會調用server_forver方法,此步驟會執行socket_server的循環執行,這樣就能不斷監聽客戶端的請求,server端調用application響應用戶請求

五、django的application實現
django的application是通過WSGIhandle的一個實例來實現,此實例可以被回掉,然后根據wsgi的接口規則傳入environ和start_response。所以本質上,django就是使用的內置python提供的wsgiref.simple_server再對application進行豐富的封裝。大部分的django編碼工作都在application部分

六、django調用鏈
django 框架原理

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女