django2.x版本 url配置


1、導入模塊

from django.urls import path, include, re_path

 

路由系統過程:

1)網頁輸入網址,提交請求

2)找到settings.py中的Root_URLCONF, 進入路由系統中按照順序找匹配的

3)找到了,就調用與該匹配的url映射的視圖函數,並傳遞參數request以及其它  HttpRequest對象request

4)視圖函數處理,返回HttpResponse給瀏覽器展示(瀏覽器解析網頁)

5)沒有找到匹配的url就報錯

 

2、一般靜態配置  article/2017/

path(route,views.函數名,函數的參數,該url模式的別名)

urlpatterns = [
path('admin/', admin.site.urls),
path('hello/',views.hello), # 前面版本中表示空的是 '^$',新版本直接 '' 末尾/一定要,hello不行,一定是hello/
path('time/',views.current_time),
]


3、動態配置   <類型:變量名>,articles/<int:year>/

path('article/<int:year>/',views.book)

變量名作為參數傳遞給視圖函數;類型有int, str,slug, Uuid, path

 

4、正則匹配   re_path()    (?p<year>[0-9]{4})  

使用re_path()函數;表達的全部是str格式,不能是其他類型。

兩種形式:不提取參數,比如re_path(articles/([0-9]{4}/,表示四位數字,每一個數字都是0到9的任意數字;提取參數,命名形式(?P<name>pattern),比如re_path(articles/(?P<year>[0-9]{4})/,將正則表達式提取的四位數字,每一個數字都是0到9的任意數字命名為year,

 

 

5、include用法

可以減少重復的匹配,

Urlpatterns = [

path(‘<page_slug>-<page_id>/’,include([

path(‘history/’,views.history),

path(‘edit/’,views.edit),

])]

 

還可以實現url的映射分發

from django.urls import path,include

urlpatterns = [

path('admin/', admin.site.urls),
path('ant_test/',include('ant_test.urls'))
]

ant_test為app名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM