Flask Dev Server가 두 번 실행되는 것으로 나타나는 이유
Flask에서 Werkzeug 라이브러리는 개발 서버에 app.run()을 제공합니다. Werkzeug는 리로더를 활용하여 코드가 업데이트될 때마다 프로세스를 다시 시작합니다. 이 리로더는 하위 프로세스를 생성하여 subprocess.call()을 사용하여 스크립트가 다시 실행되도록 합니다.
개발 서버를 실행하면 원본 프로세스와 하위 프로세스 모두에서 스크립트가 실행되어 다음과 같은 결과가 발생합니다. 중복 인쇄 라인.
리로더 비활성화
추가 실행을 제거하려면 비활성화할 수 있습니다. app.run()에서 use_reloader를 False로 설정하여 리로더를 실행합니다. 이렇게 하면 자동 다시 로드가 방지되지만 실시간 다시 로드 기능도 비활성화됩니다.
또는 --no-reload 옵션과 함께 플라스크 실행 명령을 사용할 수 있습니다.
하위 프로세스
원래 프로세스와 하위 프로세스를 구분해야 하는 경우 werkzeug.serving.is_running_from_reloader 함수, 하위 프로세스에 있는 경우 True를 반환합니다.
모듈 전역 설정
웹 수명 전체에 걸쳐 모듈 전역을 설정합니다. 서버라면 @app.before_first_request 데코레이터 사용을 고려해 보세요. 이 데코레이터는 다시 로드할 때마다 첫 번째 요청이 수신될 때 한 번만 실행되는 함수에 적용됩니다.
WSGI 서버에 대한 고려 사항
분기 또는 새 하위 프로세스를 사용하는 WSGI 서버의 애플리케이션에서 before_first_request 핸들러는 새 항목마다 한 번씩 여러 번 호출될 수 있습니다. 프로세스입니다.
위 내용은 내 Flask Dev Server가 두 번 실행되는 것처럼 보이는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!