Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在url中省略的参数_Python_Django_Django Urls - Fatal编程技术网

Python 在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

在《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'): #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模式中不能有默认参数。