Django URL配置异常:首页与blog路径404错误求助
问题
按照Django教程一字不差配置初始URL,访问http://127.0.0.1:8000/报错,但http://127.0.0.1:8000/admin/可正常访问。使用Python 3.11.1,具体错误信息如下:
页面未找到(404)
请求方法:GET
请求URL:http://127.0.0.1:8000/blogDjango尝试按照iblogs.urls中定义的URLconf,按以下顺序匹配URL模式:
admin/ ^media/(?P<path>.*)$当前路径blog未匹配到任何模式。
相关代码
项目根目录 urls.py(其一)
from django.contrib import admin from django.urls import path, include from django.conf.urls.static import static from django.conf import settings from .views import home urlpatterns = [ path('admin/', admin.site.urls), path(' ', home) ]
项目根目录 views.py
from django.http import HttpResponse from django.shortcuts import render # Create your views here. def home(request): return HttpResponse("hello")
项目根目录 urls.py(其二)
from django.contrib import admin from django.urls import path, include from django.conf.urls.static import static from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('blog/',include('blog.urls')) ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
解决方案
问题出在两处URL配置错误:
根路径匹配失效
根目录urls.py(其一)里的path(' ', home),路径参数多了空格,应改为path('', home),这样才能正确匹配http://127.0.0.1:8000/根路径。/blog路径未正确配置
访问/blog报错,是因为当前生效的URL配置(错误信息显示为iblogs.urls)中没有定义blog/路径。你提供的“urls.py(其二)”虽包含path('blog/',include('blog.urls')),但该配置未被当前运行的项目加载,或者你未在blog应用下创建对应的urls.py文件。
修复步骤:
- 修改根目录urls.py,将
path(' ', home)改为path('', home),确保根路径可正常访问。 - 若需访问
/blog路径,确保生效的根目录urls.py包含path('blog/', include('blog.urls')),同时在blog应用下创建urls.py并配置视图:
并在# blog/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.blog_home, name='blog-home'), ]blog/views.py中实现blog_home视图函数。
内容的提问来源于stack exchange,提问作者Luix
相关产品推荐
相关产品推荐

