Python 在url中省略的参数
在《Django'sBook2.0》一书中,作者谈到了在url中使用“catchers”。根据他的说法,您可以省略url中的一些参数,并在Python 在url中省略的参数,python,django,django-urls,Python,Django,Django Urls,在《Django'sBook2.0》一书中,作者谈到了在url中使用“catchers”。根据他的说法,您可以省略url中的一些参数,并在views.py中定义它,以防止出现错误404: url.py urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^hours/(?P<hour>\d+)/$', views.date_in), def date_in(request, hour='02'): #Def
views.py
中定义它,以防止出现错误404:
url.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hours/(?P<hour>\d+)/$', views.date_in),
def date_in(request, hour='02'): #Default argument defined here
hour=int(hour)
#some extra code
这对我不管用。我仍然得到错误404,因为小时后的参数不存在。您没有在
url.py
中忽略hour
参数。试试这个:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hours/(?P<hour>\d+)/$', views.date_in),
url(r'^hours/$', views.date_in),
urlpatterns=[
url(r“^admin/”,admin.site.url),
url(r“^hours/(?P\d+/$”,views.date_in),
url(r“^hours/$”,视图中的日期),
这将为同一视图创建两个路由。一个接受
hour
参数,另一个不接受。没有hour
参数的路由将使用默认值('02'
).所以我不能定义hour='02'以防止单个url中出现错误404?不,url模式中不能有默认参数。