【问题标题】:Django URL pattern doesn't workDjango URL 模式不起作用
【发布时间】:2019-01-30 00:12:45
【问题描述】:

我的urls.py 包含如下:

urlpatterns = [
    path('files/', include('files.urls')),
]

然后,在files/urls.py,我把这个:

urlpatterns = [
    path('', views.index, name='index'),
    path(r'(?P<name>[a-z]+)', views.check, name='check')
]

所以,我假设当example.com/files 有效时,example.com/files/somename 也应该有效,但事实并非如此:

使用 example.urls 中定义的 URLconf,Django 尝试了这些 URL 模式,按以下顺序:

[name='index']
files/ [name='index']
files/ (?P<name>[a-z]+) [name='check']

当前路径,files/somename,与其中任何一个都不匹配。

我在这里错过了什么?

【问题讨论】:

  • this 会有所帮助。
  • 你将url(..)s 和path(..)s 混合使用:Django 有几种方法来指定 URL,每种方法都有自己的符号。

标签: python django django-urls


【解决方案1】:

您不需要将正则表达式与path 方法一起使用。相反,您可以简单地将 str 指定为参数类型:

path('<str:name>/', views.check, name='check')

如果要使用正则表达式,请使用re_path:

re_path(r'(?P<name>[a-z]+)', views.check, name='check')

【讨论】:

    猜你喜欢
    • 2018-10-03
    • 2021-09-29
    • 2013-05-09
    • 2011-04-28
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2018-05-05
    • 2018-04-03
    相关资源
    最近更新 更多