python – Django 2.0路径错误?:(2_0.W001)的路由包含'(?P <',以'^'开头,或以'$'结尾
作者:互联网
我是Django的新手,正在尝试在我的网站上为音乐应用程序创建后端代码.
我在views.py文件中创建了正确的视图(在正确的目录中),如下所示:
def detail(request, album_id):
return HttpResponse("<h1>Details for Album ID:" + str(album_id) + "</h1>")
但是,为此创建URL或路径时(如下所示)
#/music/71/ (pk)
path(r'^(?P<album_id>[0-9])/$', views.detail, name='detail'),
我在终端上遇到警告:
?: (2_0.W001) Your URL pattern '^(?P<album_id>[0-9])/$' [name='detail'] has a route that contains '(?P<', begins with a '^', or ends with a '$'. This was likely an oversight when migrating to django.urls.path().
每当/ music /(路径工作)后跟一个数字,例如/ music / 1(这是我想要做的),就无法找到页面,终端会给出上述警告.
这可能是一个简单的错误,只是我是愚蠢但我是Django和python正则表达式语句的新手,所以任何帮助都表示赞赏.
解决方法:
Django 2.0中的新path()
语法不使用正则表达式.你想要的东西:
path('<int:album_id>/', views.detail, name='detail'),
如果要使用正则表达式,可以使用re_path()
.
re_path(r'^(?P<album_id>[0-9])/$', views.detail, name='detail'),
旧的url()
仍然有效,现在是re_path的别名,但将来可能会被弃用.
url(r'^(?P<album_id>[0-9])/$', views.detail, name='detail'),
标签:python,python-3-x,django,django-views,django-urls 来源: https://codeday.me/bug/20190928/1828357.html