第一种传参,路由中拼接参数:
主路由:
urlpatterns = [
path('admin/', admin.site.urls),
path('film/',include('film.urls')),
]
子路由:
from django.urls import pathfrom film import views
urlpatterns = [
path('<int:fid>/filmdetail/',views.filmDetail),
]
视图:
def filmDetail(request,fid):
return HttpResponse(fid)
浏览器地址栏访问:
http://127.0.0.1:8000/film/filmlist/kobe
第二种传参,子路由中添加参数:
主路由:
urlpatterns = [
path('admin/', admin.site.urls),
path('film/',include('film.urls')),
]
子路由:
urlpatterns = [
path('params/',views.OtherView,{'name':'kb'})
]
视图:
特别注意1:视图中必须传递name参数
def OtherView(request,name):
return HttpResponse(f'response-{name}')
第三种传参,主路由、子路由中添加参数:
主路由中添加参数:{‘config_id’:‘666’}
urlpatterns = [
path('admin/', admin.site.urls),
path('film/',include('film.urls'),{'supername':'china'})
]
子路由:
urlpatterns = [
path('params/',views.OtherView,{'name':'kb'})
]
视图:
def paramsview(request,age):
return HttpResponse('age')
访问url:http://127.0.0.1:8000/film/params/ ,报错
解决:视图中必须得接收主路由传递的参数
视图:
def OtherView(request,name,supername):
return HttpResponse(f'respo