Django URL 模式不起作用
Posted
技术标签:
【中文标题】Django URL 模式不起作用【英文标题】:Django URL pattern doesn't work 【发布时间】: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,每种方法都有自己的符号。
【参考方案1】:
您不需要将正则表达式与path
方法一起使用。相反,您可以简单地将 str
指定为参数类型:
path('<str:name>/', views.check, name='check')
如果要使用正则表达式,请使用re_path
:
re_path(r'(?P<name>[a-z]+)', views.check, name='check')
【讨论】:
以上是关于Django URL 模式不起作用的主要内容,如果未能解决你的问题,请参考以下文章