[코담]
웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트
2 01 Page not found (404) | ✅저자: 이유정(박사)
🔹 Page not found (404)이란?
사용자가 웹 주소(URL)를 입력했는데, 그 주소에 해당하는 페이지나 기능을 장고가 찾지 못할 때 생기는 오류입니다.
즉, 장고 프로젝트 안에 그 URL을 처리할 경로(path)가 없어서 생기는 문제입니다. 예를 들어, /about/
이라는 주소로 들어왔지만 장고에 /about/
을 처리하는 코드가 없다면 이 오류가 발생합니다.
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/polls/
이런 메시지가 나올 경우:
- 사용자가
http://127.0.0.1:8000/polls/
주소로 접근했지만, - Django가 이 주소를 처리할 방법을
urls.py
안에서 찾지 못한 것입니다.
🔹 이 오류가 발생하는 주요 원인과 해결 방법:
◽ mysite/urls.py
에서 앱 연결이 빠짐:
# 잘못된 예 (polls 앱 연결이 없음)
urlpatterns = [
path('admin/', admin.site.urls),
]
✅ 해결 방법:
# polls 앱의 URL을 include()로 연결
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls')), # 추가
]
◽ polls/urls.py
파일이 존재하지 않음
앱을 만들면 urls.py
파일이 자동으로 생성되지 않으므로, 직접 만들어야 합니다.
✅ 해결 방법: polls/urls.py
파일을 새로 만들고 다음처럼 작성합니다.
# polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
◽ views.py
에 index 함수가 없음
✅ 해결 방법:
# polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("안녕하세요, 여기는 투표 앱입니다.")