剛才的 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 ...