如果我通过http://127.0.0.1:8000/call/?p=3并在view.page中打印num,则会打印1
#urls.py
urlpatterns = [
path('call/',views.call),
path('call/page<int:num>/',views.call),
]
if I pass 127.0.0.1:8000/call/?p=3 and it prints num 1 and not 3.
# View (in blog/views.py)
def page(request, num=1):
print(num) // 1
答案 0 :(得分:1)
?p=3
部分是querystring [wiki],而不是 path 。这些参数存储在request.GET
[Django-doc](类似于字典的对象)中,不同之处在于键可以映射到多个参数。
因此只有一个路径:
urlpatterns = [
path('call/',views.call),
]
然后使用QueryDict.get(..)
[Django-doc]来获取它,我们可以在其中提供一个 default 参数:
def page(request):
print(request.GET.get('p', 1))
如果您指定:
urlpatterns = [
path('call/',views.call),
path('call/page<int:num>/',views.call),
]
然后触发第二条路径的URL是127.0.0.1:8000/call/page3
。