1 # re_path 2 #re_path是用正則匹配 3 from django.contrib import admin 4 from django.urls import path,re_path 5 from app01 import views 6 7 urlpatterns = [ 8 path('admin/', admin.site.urls), 9 path('login/',views.login.as_view()), 10 #表示之匹配 index/test 開頭,並且index/test結尾的路徑 11 re_path(r'^index/test$',views.test), 12 #匹配index/(四位數字年份)如果在正則里面加了括號,那么會在調用函數的時候自動將括號里匹配成功的內容傳給試圖函數,要在創建函數的時候接收,否則會報錯 13 re_path(r'^inde/([0-9]{4})/$',views.year), 14 ]
注意:
-
如果要沖URL中捕獲一個值,就需要在表達式用添加括號
- URL前面不需要添加反斜杠,因為每個URL都有。
- 每個正則表達式前面的'r'是可選的但是建議機上。它高數PYthon這個字符串是“原始的”——字符串中任何字符都不應該轉意
1 #re_path 分組起名 2 3 4 5 from django.contrib import admin 6 from django.urls import path,re_path 7 from app01 import views 8 9 urlpatterns = [ 10 path('admin/', admin.site.urls), 11 path('login/',views.login.as_view()), 12 #如果要給獲取的參數起名,URL寫法'index/?P<名字>表達式' 但是在視圖函數接受的時候,必須使用起的名字接受 13 re_path(r'^index/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',views.test), 14 ]
1 #路由分發 2 3 4 5 ''' 6 比如:我們創建了,這幾個應用 app01、app02 7 然后我們在每個應用里創建了 urls.py 8 9 ''' 10 11 12 #-------------------這里是app01下urls.py的內容--------------------------- 13 from django.contrib import admin 14 from django.urls import path,re_path 15 from app01 import views 16 17 urlpatterns = [ 18 path('admin/', admin.site.urls), 19 path('login/',views.login.as_view()), 20 #如果要給獲取的參數起名,URL寫法'index/?P<名字>表達式' 但是在視圖函數接受的時候,必須使用起的名字接受 21 re_path(r'^index/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',views.test), 22 ] 23 24 #--------------------------------end--------------------------- 25 26 27 28 #-------------------這里是全局下urls.py的內容--------------------------- 29 30 from django.contrib import admin 31 #這里需要導入include 32 from django.urls import path,re_path,include 33 #這里需要導入app01的urls 34 from app01 import urls 35 36 urlpatterns = [ 37 path('admin/', admin.site.urls), 38 #這種寫法,需要在原來的路由前加上app01/ 39 re_path(r'^app01/',include('app01.urls')), 40 #這種寫法,不需要加app01,url寫法跟以前一樣 41 re_path(r'^',include('app01.urls')) 42 43 44 ]
