Django學習筆記3 HTTP請求的url路由

2021-10-09 20:52:05 字數 2806 閱讀 3633

剛才的 sales 應用裡面有個 views.py檔案。這個檔案裡面通常是寫處理http請求的**的。我們假設凡是瀏覽器訪問的http請求的 url 位址是/sales/orders/, 就由 views.py 裡面的函式listorders來處理, 返回一段字串給瀏覽器。

開啟 views.py , 在裡面加入如下內容

"下面是系統中所有的訂單資訊。。。"

)最終的返回結果是 httpresponse 物件的引數字串。

listorders的引數request是django中的 httpquest物件,包含了請求中的資訊。

我們需要設定django的url路由來告訴 django :當前端傳送過來的http請求 url位址 是 /sales/orders/ , 就由 views.py 裡面的函式 listorders 來處理。

這是url路由設定的入口檔案。 與專案同名的配置資料夾下。

開啟該檔案,在urlpatterns列表變數中新增一條路由資訊,結果如下

from django.contrib import admin

from django.urls import path

# 別忘了匯入 listorders 函式

from sales.views import listorders

urlpatterns =

[ path(

'admin/'

, admin.site.urls)

,# 訪問『admin/』這個**的時候,由admin.site.urls處理

# 新增如下的路由記錄

path(

'sales/orders/'

, listorders)

,]

urlpatterns列表 就是 django 的 url 路由的入口。裡面是一條條的路由記錄,我們新增的path('sales/orders/', listorders)就是告訴 django 當前端過來的請求url位址是/sales/orders/, 就由 views.py 裡面的函式 listorders 來處理。

重新整理後

這就是瀏覽器的請求經過 django路由後, 選擇執行我們定義的函式 listorders,該函式 返回的字串, 被作為http響應的訊息體中的內容返回給瀏覽器了。

所以瀏覽器最終顯示的就是我們listorders函式返回的字串。

url 路由表就是乙個請求對應乙個處理函式。

from django.urls import path

from

.import views

urlpatterns =

[ path(

'orders/'

, views.listorders)

,]

然後,我們再修改主url路由檔案 bysms/urls.py , 如下

from django.contrib import admin

# 匯入乙個include函式

from django.urls import path, include

from sales.views import listorders

urlpatterns =

[ path(

'admin/'

, admin.site.urls)

,# 凡是 url 以 sales/ 開頭的,

# 都根據 sales.urls 裡面的 子路由表進行路由

path(

'sales/'

, include(

'sales.urls'))

,]

include是django裡乙個專門處理路由的函式。

當乙個http請求過來時, django檢查 url,比如這裡是sales/orders/,先到主url路由檔案 bysms/urls.py中檢視是否有匹配的路由項。如果有匹配 ( 這裡匹配了sales/), 並且匹配的物件是乙個子路由設定 , 比如這裡是include('sales.urls')就會去子路由檔案中(sales\urls.py)中檢視 。

注意這時,會從請求url中去掉前面主路由檔案 已經匹配上的部分(這裡是sales/), 將剩餘的部分(這裡是orders/)去子路由檔案中檢視是否有匹配的路由項。

匹配到orders/,匹配的物件,這裡是views.listorders,它是乙個處理函式,就呼叫該函式處理這個http請求,將該函式的返回物件構建 http響應訊息,返回給客戶端。

HTTP協議3 HTTP請求方法

根據http標準,http請求可以使用多種請求方法。http1.0定義了三種請求方法 get,post 和 head方法。http1.1新增了五種請求方法 options,put,delete,trace 和 connect 方法。序號 方法描述 1get 請求指定的頁面資訊,並返回實體主體。2he...

HTTP協議基礎 3 HTTP訊息

http基於客戶端 伺服器體系結構模型和無狀態請求 響應協議,該協議通過可靠的tcp ip連線交換訊息來執行。本篇就來學習http訊息,可以說請求是乙個訊息,響應也是這個訊息。通過學習http訊息,接下來學習http請求和響應會更順利一些。http 客戶端 是為了傳送乙個或多個http請求訊息而與伺...

網路協議分析3 HTTP

在瀏覽器輸入url,回車以後發生了什麼?第一,找到伺服器 第二,建立tcp連線 第三,建立http連線 第四,斷開tcp連線 客戶端和伺服器端的通訊遵守了http協議,自然需要封裝http報文 http請求報文 請求行 方法 get post url 版本 1.1 http協議的請求方法有 get ...