개발 중에 Flask 개발 서버가 두 번 실행되는 이유
Flask 개발 서버를 실행할 때 시작 인쇄 줄이 두 번 표시되는 것을 사용자가 확인할 수 있습니다. 이 동작은 코드 변경 시 업데이트를 용이하게 하는 하위 프로세스를 생성하는 Werkzeug의 리로더 사용에서 비롯됩니다.
리로더 시작
Flask 앱은 다음으로 실행됩니다. Werkzeug의 개발 서버를 내부적으로 활용하는 app.run() 메서드. restart_with_reloader() 함수는 하위 프로세스를 시작하여 subprocess.call()로 스크립트가 다시 실행되도록 합니다.
자동 다시 로드 비활성화
이중 인쇄를 억제하려면 , app.run()에서 use_reloader를 False로 설정합니다. 또는 --no-reload 플래그와 함께 플라스크 실행 명령을 사용하십시오.
FLASK_DEBUG=1 flask run --no-reload
다시 로드 감지
앱이 다시 로드되는 하위 프로세스에서 실행 중인지 확인하려면 werkzeug.serving.is_running_from_reloader를 사용하세요. function.
모듈 전역에 대한 대안
모듈 전역을 설정해야 하는 경우 @app.before_first_request 데코레이터를 사용하여 한 번만 실행되는 함수를 만듭니다. 다시 로드할 때마다 첫 번째 요청 시. 그러나 이 접근 방식은 여러 프로세스를 활용하는 WSGI 서버에서 여러 호출로 이어질 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3