Django 프론트& 백엔드 개발

Django에서 메인 페이지(빈 경로)가 404가 뜨는 이유

Data Jun 2026. 1. 3. 23:53

Django 서버를 실행하고
브라우저에서 ip:port만 입력했는데 404 페이지가 보이는 경우가 있습니다.

 

겉보기엔 에러처럼 보이지만,
실제로는 아직 메인 URL을 정의하지 않았기 때문입니다.

 

1. Django는 어디서 URL을 찾을까?

Django는 요청이 들어오면
먼저 **프로젝트의 urls.py**를 확인합니다.

# costaurant/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('foods/', include('foods.urls')),
]

 

이 설정을 보면 Django는 다음 URL만 알고 있습니다.

  • admin/
  • foods/

2. 그럼 ip:port로 접속하면?

브라우저에서 접속한 주소는 다음과 같습니다.

http://127.0.0.1:8000/

이 URL의 경로는:

''

아무것도 없는 빈 경로(empty path) 입니다.

 

하지만 urls.py에는
이 빈 경로('')에 대한 처리가 없기 때문에
Django는 다음과 같은 메시지를 보여줍니다.

The empty path didn't match any of these.

 

3. 해결 방법: 빈 경로를 직접 처리하기

메인 페이지를 만들고 싶다면
빈 경로('')에 대한 URL 패턴을 추가하면 됩니다.

# costaurant/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('foods.urls')),
]

이렇게 하면:

  • ip:port/ 요청
  • foods 앱의 urls.py로 전달됨

 

4. 정리하면

  • Django는 요청이 들어오면 project urls.py부터 확인
  • ip:port/는 빈 경로('') 요청
  • 빈 경로를 처리하지 않으면 404 발생
  • path('', include(...))로 메인 페이지 설정 가능

 

메인 페이지가 404인 이유는
빈 경로('')에 대한 URL 패턴을 아직 정의하지 않았기 때문이다.