網站是根據用戶請求來輸出相應的響應內容的,用戶請求是指用戶在瀏覽器上訪問某個網址的鏈接的操作,瀏覽器會根據網址鏈接信息向網站發送 HTTP 請求,那么,當Django收到用戶請求時,他是如何獲取用戶請求信息的呢?
獲取請求信息
當在瀏覽器上訪問某個網址時,其實質是向網站發送一個HTTP請求,HTTP請求分為 8 種請求方式,每種請求方式的說明如下表所示。
請求方式 | 說明 |
OPTIONS | 返回服務器針對特定資源所支持的請求方法 |
GET | 向特定資源發出請求(訪問網頁) |
POST | 向指定資源提交數據處理請求(提交表單、上傳文件) |
PUT | 向指定資源位置上傳數據內容 |
DELETE | 請求服務器刪除request-URL所標示的資源 |
HEAD | 與GET請求類似,返回的響應中沒有具體內容,用於獲取報頭 |
TRACE | 回復和顯示服務器收到的請求,用於測試和診斷 |
CONNECT | HTTP1.1協議中能夠將連接改為管道方式的代理服務器 |
在上述的HTTP請求方式里,最基本的是GET請求和POST請求,網站開發者關心的也只有 GET 請求和 POST 請求。GET請求和POST請求是可以設置請求參數的,兩者的設置方式如下:
- GET 請求的請求參數是在路由地址后添加 "?" 和參數內容,參數內容以 key=value形式表示,等號前面的是參數名,后面的是參數值,如果涉及多個參數,每個參數之間就使用 "&" 隔開,如127.0.0.1:8000/?user=xy&pw=123。
- POST 請求的請求參數一般以表單的形式傳遞,常見的表單使用 HTML 的 form 標簽、並且 form 標簽的 method 屬性設為 POST。
對於 Django 來說,當它接收到 HTTP 請求之后,會根據 HTTP 請求攜帶的請求參數以及請求信息來創建一個 WSGIRequest 對象,並且作為視圖函數的首個參數,這個參數通常寫成request,該參數包含用戶所有的請求信息。
望以上內容能夠幫助到各位。