Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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 Django中命名URL之间的差异?_Python_Django_Django Urls - Fatal编程技术网

Python Django中命名URL之间的差异?

Python Django中命名URL之间的差异?,python,django,django-urls,Python,Django,Django Urls,Django中这两个命名URL之间有什么区别 re_path('articles/(?P<year>[0-9]{4})/', views.year_archive), path('articles/<int:year>/', views.year_archive), re_path('articles/(?P[0-9]{4})/',views.year_存档), 路径('articles/',views.year_archive), 他们似乎也这么做了? path

Django中这两个命名URL之间有什么区别

 re_path('articles/(?P<year>[0-9]{4})/', views.year_archive),
 path('articles/<int:year>/', views.year_archive),
re_path('articles/(?P[0-9]{4})/',views.year_存档),
路径('articles/',views.year_archive),
他们似乎也这么做了?

  • path
    是django 2.0中添加的一种新的url定义样式,它有自己的标记

  • re_path
    是一种更高级的方法,要求您为url编写自己的正则表达式。这是django
    中使用的所有url模式都接受任何整数值的方法。
    re_path
    中的正则表达式缺少
    ^
    $
    ,这可能会导致意外行为。@Alasdair^$如果re_路径在包含的url中,则不需要它。如果没有
    ^
    $
    ,正则表达式将匹配
    too/articles/2000/bar
    以及
    articles/2000/
    。不管它是否包含url,re_路径不是旧式的。但是,如果我错了,请纠正我,谢谢。是的,它在django 2.0中是新的,但它使用老式的正则表达式标记来定义URL。我的意思是,当使用Reu path时,您需要使用正则表达式。我使用哪一个?使用路径更容易使用并标记此答案