CommandError: You have not set ASGI_APPLICATION, which is needed to run the server

CommandError: You have not set ASGI_APPLICATION, which is needed to run the server. 오류는 Django 프로젝트에서 ASGI 애플리케이션의 경로가 설정 파일(settings.py)에 명시되지 않았을 때 발생합니다. ASGI(Application Server Gateway Interface)는 Django에서 비동기 프로그래밍을 지원하기 위한 인터페이스이며, 특히 Django Channels와 같은 비동기 기능을 사용할 때 필요합니다.

해결 방법

  1. ASGI_APPLICATION 설정하기: 프로젝트의 settings.py 파일에서 ASGI_APPLICATION 설정을 추가합니다. 이 설정은 ASGI 애플리케이션의 경로를 지정해야 합니다. 일반적으로 이 경로는 [프로젝트명].asgi.application의 형태를 취합니다. 예를 들어, 프로젝트 이름이 myproject라면, settings.py 파일에 다음과 같이 추가합니다:
   ASGI_APPLICATION = 'myproject.asgi.application'
  1. ASGI 애플리케이션 파일 확인하기: 프로젝트의 루트 디렉토리에 asgi.py 파일이 있는지 확인합니다. Django 프로젝트를 생성할 때 startproject 명령을 사용하면, 이 파일은 자동으로 생성됩니다. 파일 내용은 대략 다음과 같아야 합니다:
   """
   ASGI config for myproject project.
   """

   import os
   from django.core.asgi import get_asgi_application

   os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')

   application = get_asgi_application()

여기서 myproject는 실제 프로젝트의 이름으로 대체해야 합니다.

  1. 서버 재시작: 설정을 변경한 후, ASGI 서버를 다시 시작합니다. Daphne를 사용하는 경우, 다음과 같은 명령어로 서버를 시작할 수 있습니다:
   daphne -p 8001 myproject.asgi:application

여기서 8001은 사용할 포트 번호이며, myproject는 실제 프로젝트 이름으로 대체해야 합니다.

위의 단계들을 통해 ASGI_APPLICATION 설정을 올바르게 추가하고, ASGI 애플리케이션 파일(asgi.py)이 제대로 구성되어 있는지 확인하면, 위의 오류를 해결할 수 있습니다.



게시됨

카테고리

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다