Inflearn brand logo image

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편

(실습) 웹소켓 Liveblog

ValueError: No route found for path 'ws/liveblog/'.

작성

·

85

0

 이런 에러가 발생했습니다.

routing.py

websocket_urlpatterns = [
    path("ws/echo/", EchoConsumer.as_asgi()),
]

path로 추가를 해주려고 했는데, 선생님께서는 추가 하지 않고 진행하셨던거같아서요. 지금 에러나는 부분은 admin으로 카드 추가하고 liveblog에 제대로 뜨는지 확인하는 부분이였습니다.

WebSocket DISCONNECT /ws/liveblog/ [127.0.0.1:50574]

WebSocket HANDSHAKING /ws/liveblog/ [127.0.0.1:50579]

Exception inside application: No route found for path 'ws/liveblog/'.

Traceback (most recent call last):

File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/django/contrib/staticfiles/handlers.py", line 101, in call

return await self.application(scope, receive, send)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/channels/routing.py", line 62, in call

return await application(scope, receive, send)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "/Volumes/code/mydjangochat/venv/lib/python3.12/site-packages/channels/routing.py", line 134, in call

raise ValueError("No route found for path %r." % path)

이런식의 에러가 뜨고 자동으로 Page not found라고 뜹니다.

 

감사합니다.

답변 2

1

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

확인해보니 "(실습) 웹소켓 Liveblog" 강의에서 12:51 시점에 ws/liveblog/ 주소에 대한 웹소켓 path를 등록하는 부분이 있습니다.

이 부분을 확인해보시겠어요?

이진석 드림

넵 감사합니다. 제가 놓쳤던거같습니다.

이진석님의 프로필 이미지
이진석
지식공유자

잘 해결이 되어 다행입니다.

살펴보시다가 궁금한 점 있으시면 질문 많이 남겨주세요.

화이팅입니다. ;-)

0

안녕하세요, 인프런 AI 인턴입니다.

sunnnwo님이 WebSocket 연결 시 “No route found for path ‘ws/liveblog/’” 라는 에러를 경험하셨군요. 이 문제는 주로 Django Channels에서 라우팅 설정이 올바르게 이루어지지 않아서 발생합니다. 해당 문제에 대한 해결 방안과 설명을 드릴게요.

문제의 원인

현재 routing.py 파일 안에 websocket_urlpatterns를 정의하셨지만, 라우팅 패턴에 ‘ws/liveblog/’ 경로가 포함되어 있지 않아 발생하는 오류입니다. 즉, ‘ws/liveblog/’ 경로에 대해 처리할 Consumer가 정의되지 않았기 때문입니다.

해결 방안

  1. 라우팅 설정 점검: routing.py 파일에서 ‘ws/liveblog/’ 경로에 대한 설정이 누락된 것 같습니다. 해당 경로에 맞는 라우팅 패턴을 추가해야 합니다.

  2. 올바른 패턴 추가:
    만약 'ws/echo/' 외에 'ws/liveblog/' 경로도 요구된다면, 다음과 같이 패턴을 추가해 보세요.

    from django.urls import path
    from .consumers import EchoConsumer, LiveBlogConsumer  # 새롭게 LiveBlogConsumer를 추가
    
    
    websocket_urlpatterns = [
        path("ws/echo/", EchoConsumer.as_asgi()),
        path("ws/liveblog/", LiveBlogConsumer.as_asgi()),  # 해당 경로를 처리할 Consumer 추가
    ]
    
  3. LiveBlogConsumer 구현 확인:

    • 새롭게 추가한 LiveBlogConsumer.consumers 모듈에 정의되어 있는지 확인하세요.

참고 자료

  • Django Channels 관련 라우팅에 대한 자세한 설명은 Django Docs: Channels 라우팅을 참고하세요.
  • 실습형 자료 외에도 인프런 지식공유자님의 강의와 관련 질문들을 참고하셔서 추가적인 인사이트를 얻으시면 좋겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기