编程语言
首页 > 编程语言> > python – Django 2.0路径错误?:(2_0.W001)的路由包含'(?P <',以'^'开头,或以'$'结尾

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