网址中省略的参数

时间:2019-09-01 23:43:19

标签: python django django-urls

在书中:“ Django的书2.0”中,作者谈到了在URL中使用“捕手”。据他介绍,您可以在url中省略一些参数,并在views.py中定义它,以防止出现错误404:

urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hours/(?P<hour>\d+)/$', views.date_in),

views.py

def date_in(request, hour='02'): #Default argument defined here
    hour=int(hour)
    #some extra code

这对我不起作用。我仍然收到错误404,因为小时后的参数不存在。

1 个答案:

答案 0 :(得分:2)

您没有在hour中省略urls.py参数。试试这个:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hours/(?P<hour>\d+)/$', views.date_in),
    url(r'^hours/$', views.date_in),

这将为同一视图创建两条路线。一个接受hour自变量,一个不接受。没有hour参数的那个将使用默认值('02')。