4、路由規劃與設計
1、概述
-
介紹
- 路由稱為 URL(Uniform Resource Locator,統一資源定位符),也稱為 URLconf,對互聯網上得到的資源位置和訪問方式的一種簡潔表示,是互聯網上標準梓源的地址。
- 互聯網上的每個文件都有一個唯一的路由,用于指出網站文件的路由位置,也可以理解為我們常說的網址,每個網址代表不同的網頁。
-
作用
- 用來表示互聯網上某個資源的地址。
-
說明:
- 互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。
-
語法格式為:
protocol :// hostname[:port] / path [?query][#fragment]如:http://tts.tmooc.cn/video/showVideo?menuId=657421&version=AID201908#subject
-
說明:
-
protocol(協議)
- http 通過 HTTP 訪問該資源。 格式
HTTP://
- https 通過安全的 HTTPS 訪問該資源。 格式
HTTPS://
- file 資源是本地計算機上的文件。格式:
file:///
- http 通過 HTTP 訪問該資源。 格式
-
hostname(主機名)
- 指存放資源的服務器的域名系統(DNS) 主機名、域名 或 IP 地址。
-
port(端口號)
- 整數,可選,省略時使用方案的默認端口(0-65535);
- 各種傳輸協議都有默認的端口號,如http的默認端口為80、https的默認端口為443。
-
path(路由地址)
- 由零或多個“/”符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。路由地址決定了服務器端如何處理這個請求
-
query(查詢)
- 可選,用于給動態網頁傳遞參數,可有多個參數,用“&”符號隔開,每個參數的名和值用“=”符號隔開。
-
fragment(信息片斷)
- 字符串,用于指定網絡資源中的片斷。例如一個網頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。
-
注: [] 代表其中的內容可省略
-
2、路由分發規則
1、概述
- 背景
- 一個項目中可能存在多個應用,而在 項目文件夾 下的 urls.py 文件中定義所有應用各種功能的路由地址,則會造成:代碼可維護性降低,難以管理的問題、可擴展性受限、URL匹配錯誤等問題。
- 介紹
-
一個完整的路由包含路由地址、視圖函數或視圖類、路由變量 和 路由命名:
- 路由地址:即我們常說的網址。
- 視圖函數或視圖類:即項目App的views.py文件中定義的函數或類。
- 路由變量和路由命名:是路由的變量和命名設置,使路由具有動態變化和命名引用功能,
- 動態變化:指一個路由地址按照某個規律演變多種不同的路由地址;
- 命名引用:指在視圖、模型等其他項目文件中使用路由命名生成對應的路由地址。
-
- 實現
-
將每個應用的路由定義在各自應用的 urls.py 文件中,然后在項目的 urls.py 文件中進行包含(include)。
-
默認情況下,設置路由地址是在項目同名的文件夾的 urls.py 文件中實現的,這也是由配置文件 settings.py 的 ROOT_URLCONF 決定,當前項目配置的 ROOT_URLCONF 指向 babys 文件夾下的 urls.py
ROOT_URLCONF = 'babys.urls'
-
2、路由分發
-
為了更好的區分各個項目應用的路由地址,在 babys 文件夾下的 urls.py 文件中分別為每個項目應用定義一個路由入口。
-
操作:
-
在每個應用的文件夾下都創建一個 urls.py 文件。
-
在 babys 文件夾下的 urls.py 文件 為每個項目應用添加對應的路由入口地址。
from django.urls import path, re_path, includeurlpatterns = [# 為index/commodity/shopper添加路由信息path("", include(("index.urls", "index"), namespace="index"))
-