>  기사  >  백엔드 개발  >  Django 서버 시작 중에 초기화 코드를 한 번만 실행하는 방법은 무엇입니까?

Django 서버 시작 중에 초기화 코드를 한 번만 실행하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-03 19:52:03709검색

How to Execute Initialization Code Only Once During Django Server Startup?

Django 시작 시 초기화 코드 실행

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.