"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Django Server 시작시 초기화 코드를 한 번만 실행하는 방법은 무엇입니까?

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

2025-02-26에 게시되었습니다
검색:827

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

startup에서 django의 초기화 코드 실행

# myapp/__init__.py
import your_module

your_module.initializer()

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

는 시작 중에 한 번만 코드를 실행하는 것이 일반적인 요구 사항이 될 수 있습니다. 후속 요청이 아닌 초기 서버 시작 중에 만 코드가 실행되도록하는 솔루션을 살펴 보겠습니다.

처음에는 링크 된 질문에 제안 된 솔루션이 터미널에서 "hello world"메시지를 두 번 제기했습니다. 문제는 미들웨어의 실행을 종료하기 위해 가운데로 네 운동 예외를 사용하는 데 있습니다.

Django 1.7부터 시작 하여이 문제를 해결하기위한 전용 후크가 도입되었습니다. 앱의 AppConfig 클래스에서 준비된 메소드를 재정의하면 시작 전용 코드를 지정할 수 있습니다. 이 접근법은 미들웨어를 사용하는 것보다 깨끗하고 명백합니다.

1.7 이전의 django 버전의 경우 시작 코드를 __init__.py 파일에 배치하는 것이 효과적인 것으로 입증되었습니다. 이 코드는 애플리케이션이 처음로드 될 때 실행되므로 한 번만 실행됩니다.

여기 에이 접근법에 대한 코드 배치의 예가 있습니다. your_module을 가져옵니다 your_module.initializer ()

./manage.py runserver 명령을 사용하면 내부 서버 유효성 검사 프로세스로 인해 초기화 코드가 두 번 실행될 수 있습니다. 그러나 일반적인 배포 시나리오 또는 Runserver의 자동 재 장전 중에 코드는 한 번만 실행됩니다.
            
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3