Django-路由(re_path,路由分發)


 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 ]

 


免責聲明!

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



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