Django为什么给我一个404错误

时间:2018-07-15 10:40:32

标签: python django python-3.7

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

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

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

在创建Polls应用程序之前,网站可以正常运行并且可以飞上火箭,但是在创建应用程序之后,请更新polls / views.py,创建polls / urls.py文件并更新mysite / urls.py ,出现以下错误:

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

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

  1. 投票/
  2. admin /

空路径与任何这些都不匹配。

我认为我的代码不正确,所以我直接从网站复制并粘贴了该代码并尝试运行它。它仍然无法正常工作。

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

谢谢。

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

初始化 .py

pycache

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

admin.py

apps.py

移民

models.py

tests.py

urls.py

views.py

初始化 .py

pycache

1 个答案:

答案 0 :(得分:1)

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

在您的情况下,它将在这里:

  

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),
]

,您的应用程序“轮询”路线为:

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:{端口号} / polls /或http://127.0.0.1:{端口号} / polls /

默认端口号为8000

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

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