django URL路由匹配規則(path/re_path/include)


django URL路由匹配規則(path/re_path/include)

1、path不支持正則匹配

語法:path('URL/',app01視圖文件views.視圖中執行的函數)

項目urls.py文件

from django.urls import path   # 導入path函數
from django.urls import re_path #導入re_path函數
from django.urls import include  # 導入include函數
from django.contrib import admin
from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls), #path函數
    path('index/',views.index),  # views視圖,這條URL對應的執行函數
]

2、re_path支持正則匹配

項目urls.py文件

from django.urls import path
from django.urls import re_path
from django.urls import include
from django.contrib import admin
from index import views

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('^index/',views.index), # 匹配以index開頭的URL
]

 

3、include引用頭文件

項目urls.py文件

from django.urls import path
from django.urls import re_path
from django.urls import include
from django.contrib import admin
from index import urls

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('^index/',include('index.urls')), #
]

app01的urls.py文件中

from django.urls import path,re_path
from django.urls import include
from index import views
urlpatterns = [
    re_path(r'^index/$',views.index1),
]

注意:

  1、在項目中URL總路由urls.py文件,引用include函數時,子URL路由urls.py文件,匹配URL是兩個URL相加的,注意“/”

    例如:

#總路由
re_path('^index/',include('index.urls')),  
#子路由
re_path(r'^index/$',views.index1)
#訪問的就是這個URL:http://127.0.0.1:8000/index/index/  

也可以這樣寫(會發出警告,如果要在首部加“”/”建議在總路由的尾部加)

#總路由
re_path('^index',include('index.urls')),  
#子路由
re_path(r'^/index/$',views.index1)
#訪問的就是這個URL:http://127.0.0.1:8000/index/index/

但是不能這樣寫,明顯URL發生改變了

#總路由
re_path('^index',include('index.urls')),  
#子路由
re_path(r'^index/$',views.index1)
#訪問的就是這個URL:http://127.0.0.1:8000/indexindex/

 


免責聲明!

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



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