必須學(xué)會正向路由
1. 路由
? 將url與視圖進(jìn)行綁定. (路由用于維護(hù)url與視圖之間 關(guān)系.)
? 通過正則匹配的形式對url進(jìn)行匹配, 調(diào)用相應(yīng)的視圖?
2. 回顧常用的正則表達(dá)式
^ : 以...開始
$ : 以...結(jié)束
單字符簇:
.? 任意字符
\d 任意數(shù)字
[A-Z] 任意大寫字母
[a-z] 任意小寫字母
[A-Za-z] 任意字母不區(qū)分大小寫
匹配數(shù)量
*? 任意多個
+? 一到多個
{1,9} 1到9個
{9} 9個
? 0或者1個
[^/]+ 一到多個, 直到遇到斜線
3. 現(xiàn)在通常網(wǎng)址傳參數(shù)的方式有兩種
1. 直接通過url后面加?的形式傳遞參數(shù)
2. (利于seo)? 將參數(shù)與url融合到一塊
例如:
https://item.jd.com/100001550349.html
https://www.douban.com/note/702775743/
3. 如何從url中獲取信息
a. 假設(shè) 現(xiàn)在訪問 圖書中謀本數(shù)的詳情
http://127.0.0.1:8009/book/9999.html
就訪問id為9999的圖書的信息
b. url綁定的時候?qū)懛?/p>
urlpatterns = [
url(r'^index/$',index,name="圖書首頁"),
url(r'^\d+\.html$',detail,name="圖書詳情"),
]
c. 如何獲取 url中的信息
使用 小括號 () 將需要獲取的信息 括起來, 將獲取到信息自動傳遞給 視圖函數(shù) 的第二位置參數(shù)開始.
urlpatterns = [
url(r'^index/$',index,name="圖書首頁"),
url(r'^(\d+)\.html$',detail,name="圖書詳情"),
]
d. 也可以在url信息中傳遞多個參數(shù)
使用多個小括號
http://127.0.0.1:8009/book/list/yanqing/1/? ? 訪問言情小說, 排序為降序?
urlpatterns = [
url(r'^index/$',index,name="圖書首頁"),
url(r'^(\d+)\.html$',detail,name="圖書詳情"),
url(r'^list/([a-z]+)/(\d)/$',list_book,name="圖書列表"),
]
e. 以上都是以位置參數(shù)的形式傳遞給視圖函數(shù)
? ? 還可以 以關(guān)鍵字參數(shù)的形式傳遞給視圖函數(shù)
格式 (?P<參數(shù)名>正則表達(dá)式)
例如:
# 以關(guān)鍵字形式傳遞參數(shù)
url(r'^list/(?P<type>[a-z]+)/(?P<order>\d)/$',list_book,name="圖書列表")