为啥 Django 给我一个 404 错误
Posted
技术标签:
【中文标题】为啥 Django 给我一个 404 错误【英文标题】:why is Django giving me a 404 error为什么 Django 给我一个 404 错误 【发布时间】:2018-12-23 03:51:42 【问题描述】:我目前正在尝试完成 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/
使用 mysite.urls 中定义的 URLconf,Django 按以下顺序尝试了这些 URL 模式:
-
民意调查/
管理员/
空路径与其中任何一个都不匹配。
我认为我的代码不正确,所以我直接从网站上复制并粘贴了代码并尝试运行它。还是不行。
下面是我正在尝试的代码和目录布局。任何帮助将不胜感激。我确定我只是缺少一些简单的东西。
谢谢。
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),
]
投票/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 目录
打印.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
【问题讨论】:
一旦你添加了一个应用并重定向它,你必须使用你在应用中使用的 url 模式来调用它。所以,你试试127.0.0.1:8000/polls 您的代码没有问题。您应该阅读错误消息:它告诉您您要去的是您尚未定义的 /,而不是您拥有的 /polls 或 /admin。 感谢您的帮助,我真的很生气自己错过了这一点。它在文档中说。 【参考方案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 运行服务器后
将您的页面作为浏览器的输出
【讨论】:
感谢您的帮助,很恼火我错过了在地址末尾添加民意调查。以上是关于为啥 Django 给我一个 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Django 管理员登录给我 403 CSRF 错误?
Django HTTP 错误 404:未找到:在我的视图中使用 config.json 文件