为什么 Django 给我一个 404 错误

why is Django giving me a 404 error

我目前正在尝试完成 Django 2.0 教程 Poll 应用程序。我正在使用 Django 版本 2.0.7 和 Python 3.7.0。我已经为这个项目设置了一个虚拟环境。我是 Django 的新手,如果我的术语不正确,我深表歉意。

基本上,我无法让第 1 部分工作。

我已经尝试了无数次 运行 它,但我似乎无法弄清楚为什么它不起作用。

在我创建投票应用程序之前,网站 运行 正确并且我得到了火箭飞船,但是在我创建应用程序之后,更新 polls/views.py,创建 polls/urls .py 文件并更新 mysite/urls.py,我收到以下错误:

找不到页面 (404) 请求方法 GET 请求 URL:http://127.0.0.1:8000/

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

  1. 民意调查/
  2. 管理员/

空路径与其中任何一个都不匹配。

我认为我的代码不正确,所以我直接从网站上复制并粘贴代码并尝试运行。还是不行。

下面是我正在尝试的代码和目录布局。任何帮助将不胜感激。我确定我只是缺少一些简单的东西。

谢谢。

mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

polls/urls.py

from django.urls import path

from . import views

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

polls/views.py

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

C目录:\Users\ad\Documents\projects\mysite\msenv\mysite\mysite

print.txt

settings.py

urls.py

wsgi.py

init.py

pycache

C目录:\Users\ad\Documents\projects\mysite\msenv\mysite\polls

admin.py

apps.py

迁移

models.py

tests.py

urls.py

views.py

init.py

pycache

您是否在 settings.py 中添加了您的应用程序名称 请确保您已将名称添加到位于项目文件夹下的 settings.py 中

在你的情况下,它会在这里:

Directory of C:\Users\ad\Documents\projects\mysite\msenv\mysite\mysite

像这样:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app_name',] # <--- polls in your case

确保您使用定义的路由访问正确的页面

例如你的情况:

您网站的路由是:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

您的应用程序 'polls' 路由是:

from django.urls import path

from . import views

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

根据您的 views.py 文件

这是:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

你必须访问http://localhost:{port number}/polls/ or http://127.0.0.1:{端口号}/polls/

默认端口号为 8000

在 运行 服务器使用 python manage.py runserver

之后

将您的页面作为浏览器的输出