Django路由配置之正規表示式詳解

2022-05-15 15:23:40 字數 1868 閱讀 4960

正規表示式詳解

urls.py

1

from django.conf.urls import

url234

5from . import

views67

89 urlpatterns =[

1011 url(r'

^articles/2003/$

', views.special_case_2003),

1213

#思考:如果使用者想看2004、2005、2006....等,你要寫一堆的url嗎,是不是在articles後面寫乙個正規表示式/d/就行啦,**裡面輸入127.0.0.1:8000/articles/1999/試一下看看

1415 url(r'

^articles/([0-9])/$

', views.year_archive),

1617 url(r'

^articles/([0-9])/([0-9])/$

', views.month_archive),

1819

#思考,如果你想拿到使用者輸入的什麼年份,並通過這個年份去資料庫裡面匹配對應年份的文章,你怎麼辦?怎麼獲取使用者輸入的年份啊,分組/(\d)/,乙個小括號搞定

2021 url(r'

^articles/([0-9])/([0-9])/([0-9]+)/$

', views.article_detail),

2223 ]

views.py

views.py

中檢視函式的寫法:

第乙個引數必須是request,後面跟的三個引數是對應著上面分組正則匹配的每個引數,必須按順序對應

注意事項

1.urlpatterns

中的元素按照書寫順序從上往下逐一匹配正規表示式,一旦匹配成功則不再繼續。

2.若要從

url中捕獲乙個值,只需要在它周圍放置一對圓括號(分組匹配)。

3.不需要新增乙個前導的反斜槓(也就是寫在正則最前面的那個

/),因為每個

url

都有。例如,應該是

^articles

而不是^/articles。4.

每個正規表示式前面的

'r'

是可選的但是建議加上。

5.^articles$ 

以什麼結尾,以什麼開頭,嚴格限制路徑

補充說明

# 是否開啟url訪問位址後面不為'/

'跳轉至帶有'/

'的路徑的配置項

django settings.py

配置檔案中預設沒有

這個引數,但

django

預設這個引數為

。 其作用就是自動在**結尾加

'/'。其效果就是:我們定義了

urls.py

:from

django.conf.urls

import

urlfrom

import

views

urlpatterns = [

url(r

'^blog/$'

, views.blog),]訪問

時,預設將**自動轉換為

。如果在

settings.py

中設定了

,此時我們再請求

時就會提示找不到頁面。

路由配置之謎

很多時候,我們都需要配ip位址,子網掩碼,gateway等,但是我們很多人不知所以然。實習時問前輩,為什麼沒有報文?為什麼沒有連線好?回答是 你沒有配ip。大家在學習和實習時都遇到過吧,我就來談談個人淺薄的理解。首先我們畫個圖 以router為界,分為2個子網,如果我們想讓機器a和機器x通訊 第一步...

思科路由配置之EIGRP協議

思科路由配置之eigrp協議 今天要給在大家介紹的是eigrp,即加強型內部閘道器路由協議,該協議繼承了igrp協議的最大的優點是向量路由權,在路由計算中要對通道佔用率和通道可信度等因素作全面的綜合考慮,所以eigrp的路由計算更為準確,更能反映網路的實際情況,下面讓我們看一下配置過程。一 介面連線...

Django 路由正則URL

django 路由正則url url1 路由url r detail views.detail blank href detail nid url2 返回乙個值,d 也可以寫為w 任意正則 url r detail d html views.detail blank href detail html...