我正在尝试创建我的网站上的音乐应用程序的后端代码。
我已经在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
(这是我希望能够做的),页面无法找到,终端给出上述警告。
7条答案
按热度按时间uttx8gqw1#
Django 2.0中新的
path()
语法不使用正则表达式。你想要的是:如果要使用正则表达式,可以使用
re_path()
。旧的
url()
仍然可以工作,现在是re_path
的别名,但将来可能会被弃用。s71maibg2#
只是为了补充@alasdair提到的内容,我添加了re_path作为包含的一部分,它工作得很好。这里有一个例子
将re_path添加到您的导入中(对于django 2.0)
o4tp2gmn3#
除了使用're_path',你也可以使用''(空字符串)作为path()的第一个参数。我用过它,它为我工作。
olhwl3o24#
url()
在较新版本的django中被弃用。因此,在url文件中使用re_path()
代替url()
,如下所示:fbcarpbf5#
如果不起作用,请将以下代码添加到您的站点\urls.py的urlpatterns中:
0ejtzxu16#
使用空字符串“”而不是“/”或“^$”。它就像一个魅力。代码如下:
bzzcjhmw7#
在Django 2.0版本中,主键是这样写的。
urls.py(示例网站)