developer tip

Flask가 디버그 모드에서 두 번 초기화되는 것을 중지하는 방법은 무엇입니까?

copycodes 2020. 10. 10. 10:12
반응형

Flask가 디버그 모드에서 두 번 초기화되는 것을 중지하는 방법은 무엇입니까?


Python에서 Flask 서비스를 빌드하고 디버그 모드를 설정하면 Flask 서비스가 두 번 초기화됩니다. 초기화가 캐시 등을로드 할 때 시간이 걸릴 수 있습니다. 개발 (디버그) 모드에서이 작업을 두 번 수행하는 것은 성가신 일입니다. 디버그가 꺼져 있으면 Flask 서비스가 한 번만 초기화됩니다.

Flask가 디버그 모드에서 두 번 초기화되는 것을 중지하는 방법은 무엇입니까?


여기에서 할 가장 간단한 일은 use_reloader=False다음과 같은 호출에 추가 하는 것 app.run입니다.app.run(debug=True, use_reloader=False)

또는 WERKZEUG_RUN_MAIN환경에서의 값을 확인할 수 있습니다.

if os.environ.get("WERKZEUG_RUN_MAIN") == "true":
    # The reloader has already run - do what you want to do here

그러나 로드 프로세스를 제외하고 언제든지 동작이 발생하기를 원할 때 조건이 좀 더 복잡 합니다.

if not app.debug or os.environ.get("WERKZEUG_RUN_MAIN") == "true":
    # The app is not in debug mode or we are in the reloaded process

before_first_request후크 를 사용할 수 있습니다 .

@app.before_first_request
def initialize():
    print "Called only once, when the first request comes in"

참고 URL : https://stackoverflow.com/questions/9449101/how-to-stop-flask-from-initialising-twice-in-debug-mode

반응형