Django项目About页面显示404错误的排查求助
Django项目About页面404错误解决方法
问题情况
用Sublime Text开发Django项目,每次访问/about/页面都返回404错误,项目结构和相关代码如下:
项目结构
-DjangoProjects -myfirstproject -myfirstproject /*-pycache/ /*-init.py # 存在拼写错误 /*-asgi.py /*-settings.py /*-urls.py /*-views.py /*-wsgi.py -db.sqlite3 /*-manage.py # 内容错误粘贴为asgi.py代码
错误根源
- 视图与路由不匹配:views.py里定义的是
index函数,但urls.py路由指向的是views.about,函数名称对不上 - 路由文件语法错误:urls.py中
from.django contrib import admin缺少空格,语法错误导致路由无法正常加载 - 包标识文件错误:
init.py应为__init__.py(前后各两个下划线),否则Python无法识别该目录为项目包 - manage.py内容错误:当前manage.py内容是asgi.py的代码,会导致无法正常执行Django命令
修复步骤
1. 修正views.py的视图函数名称
把index改成about,保证和路由引用一致:
from django.http import HttpResponse def about(request): return HttpResponse("This is about page.")
2. 修正urls.py的语法错误
修复导入语句的空格问题:
from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('admin/', admin.site.urls), path('about/', views.about), ]
3. 修正包标识文件名
把init.py重命名为__init__.py,确保Python能识别该目录为Django项目的包。
4. 修正manage.py的内容
替换为正确的manage.py代码:
#!/usr/bin/env python """Django's command-line utility for administrative tasks.""" import os import sys def main(): os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myfirstproject.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( "Couldn't import Django. Are you sure it's installed and " "available on your PYTHONPATH? Did you forget to activate a virtual environment?" ) from exc execute_from_command_line(sys.argv) if __name__ == '__main__': main()
验证修复
启动Django开发服务器:
python manage.py runserver
访问http://127.0.0.1:8000/about/,即可正常显示"This is about page."内容。
内容的提问来源于stack exchange,提问作者bankolepopoolaymailcom
相关产品推荐
相关产品推荐

