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

3yhwsihp  于 2023-01-27  发布在  Go
关注(0)|答案(4)|浏览(119)

我知道这个问题以前有人问过,但我还没有找到解决我的问题的答案。
我正在看Django教程,我已经完全按照教程中的内容设置了第一个URL,但是当我转到http://http://localhost:8000/polls/时,它给了我这个错误:

Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
^polls/ ^% [name='index']
^admin/
The current URL, polls/, didn't match any of these.

我使用的是Django 1.10.5和Python 2.7。
下面是我在相关的网址和视图文件的代码:
在我的网站/民意调查/views.py:

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
  return HttpResponse("Hello, world. You're at the polls index.")

在我的网站/民意调查/urls.py:

from django.conf.urls import url

from . import views

urlpatterns = [
  url(r'^%', views.index, name='index'),
]

在我的网站/我的网站/urls.py:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

怎么回事?为什么我会收到404?

btxsgosb

btxsgosb1#

您的url conf正则表达式不正确,您必须使用$而不是%

from django.conf.urls import url

from . import views

urlpatterns = [
   url(r'^$', views.index, name='index'),
]

$充当regex标志,用于定义正则表达式的结尾。

e0uiprwp

e0uiprwp2#

urlpatterns = [path('', views.index, name='index'), ]

wkyowqbh

wkyowqbh3#

我在教程中遇到了同样的问题!
问题是,如果您仔细观察,它引用了两个url.py文件,即mysite/polls/url.py和mysite/url.py。
将提供的代码放入正确的url.py文件中应可解决此问题。

bybem2ql

bybem2ql4#

在调试打开时添加STATIC_URL和STATIC_MEDIA,帮助我:

from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

相关问题