> 백엔드 개발 > 파이썬 튜토리얼 > 내 Flask Dev Server가 이중 재시작 메시지를 표시하는 이유는 무엇입니까?

내 Flask Dev Server가 이중 재시작 메시지를 표시하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-07 15:44:11
원래의
639명이 탐색했습니다.

Why Does My Flask Dev Server Show a Double Restart Message?

Flask Dev Server에서 이중 다시 시작 인쇄

Flask를 사용하여 웹사이트 개발 서버를 실행할 때 서버가 다시 시작되는 비정상적인 동작을 사용자가 발견했습니다. 메시지가 한 번이 아닌 두 번 나타납니다. 그 이유를 이해하기 위해 Flask 개발 서버의 메커니즘을 살펴보겠습니다.

Flask는 WSGI 유틸리티 라이브러리인 Werkzeug를 활용하여 app.run() 메서드를 통해 개발 서버를 시작합니다. Werkzeug는 "다시 로드"라는 기술을 사용하여 코드 변경 사항이 감지되면 서버를 자동으로 다시 시작합니다. 다시 로드 프로세스에는 subprocess.call()을 사용하여 Flask 스크립트를 다시 실행하는 하위 프로세스를 생성하는 작업이 포함됩니다.

이 하위 프로세스는 상위 프로세스와 동일한 코드를 가정하므로 다시 시작 메시지가 이중으로 실행됩니다. 이 동작을 제거하려면 app.run()의 use_reloader 매개변수를 False로 설정하세요. 또는 Flask의 명령줄 실행 중에 리로더를 비활성화합니다.

FLASK_DEBUG=1 flask run --no-reload
로그인 후 복사

다시 로드하는 하위 프로세스의 존재를 감지하는 것이 중요한 고급 시나리오의 경우 Werkzeug의 is_running_from_reloader() 함수를 활용하세요. 그러나 모듈 전역을 초기화하기 위해 @app.before_first_request 데코레이터를 활용하여 다시 로드할 때마다 단일 실행을 보장하는 것이 좋습니다.

@app.before_first_request
def before_first_request():
    print(f"########### Restarted, first request @ {datetime.utcnow()} ############")
로그인 후 복사

전면 WSGI의 새로운 하위 프로세스마다 before_first_request 핸들러가 호출될 수 있습니다. 분기 또는 새로운 하위 프로세스를 사용하는 서버.

위 내용은 내 Flask Dev Server가 이중 재시작 메시지를 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿