Django에서는 시작 시 코드를 한 번만 실행하는 것이 일반적인 요구 사항일 수 있습니다. 후속 요청이 아닌 초기 서버 시작 중에만 코드가 실행되도록 보장하는 솔루션을 살펴보겠습니다.
처음에 링크된 질문에서 제안된 솔루션은 터미널에서 "Hello world" 메시지를 두 번 발생시켰습니다. 문제는 MiddlewareNotUsed 예외를 사용하여 미들웨어 실행을 종료하는 데 있습니다.
Django 1.7부터 이 문제를 해결하기 위해 전용 후크가 도입되었습니다. 앱의 AppConfig 클래스에서 Ready 메서드를 재정의하여 시작 전용 코드를 지정할 수 있습니다. 이 접근 방식은 미들웨어를 사용하는 것보다 더 깔끔하고 명확합니다.
1.7 이전의 Django 버전에서는 INSTALLED_APPS 중 하나의 __init__.py 파일에 시작 코드를 배치하는 것이 효과적인 것으로 입증되었습니다. 이 코드는 애플리케이션이 처음 로드될 때 실행되어 한 번만 실행되도록 합니다.
다음은 이 접근 방식의 코드 배치 예입니다.
# myapp/__init__.py import your_module your_module.initializer()
./manage.py runserver 명령을 사용하면 내부 서버 유효성 검사 프로세스로 인해 초기화 코드가 두 번 실행될 수 있습니다. 그러나 일반적인 배포 시나리오나 runserver에 의한 자동 다시 로드 중에 코드는 한 번만 실행됩니다.
위 내용은 Django 서버 시작 중에 초기화 코드를 한 번만 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!