Django URL组件
URL负责路由分发功能
静态路由:
urlpatterns = [ path('articles/2003/', views.special_case_2003), ]
动态路由:
1 from django.urls import re_path 3 from app01 import views 4 5 urlpatterns = [ 6 re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive), # 动态路由 7 re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive), # 动态路由 8 re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$', views.article_detail), # 动态路由 9 ]
django2.0:
from django.urls import path from . import views urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ]
view视图方法需要解析以上传送过去的参数
include 子url
当有多个app时,每个app可以有自己的urls.py, 只需在顶级urls.py中include一下就可以
from django.urls import include, path urlpatterns = [ path('community/', include('aggregator.urls')), path('contact/', include('contact.urls')), ]
django 在匹配url时,只要遇到include()语法, 就会把url分成2部分,比如上面代码里的url, 只要匹配上community/,就会把整条url丢给include('aggregator.urls')子urls.py。 子urls.py负责匹配后面的部分。
传递额外参数给views
from django.urls import path from . import views urlpatterns = [ path('blog/<int:year>/', views.year_archive, {'foo': 'bar'}), ]

浙公网安备 33010602011771号