억제 플라스크 서버가 다시 시작되면 변경
발췌 Flask documentation에서 :
플라스크는 디버그 모드에 하지 않는 일반 오류 페이지와 모든 서버 오류가 표시되지 않습니다 . 따라서 코드를 다시로드하지 않고 대화 형 디버거 만 사용하려면 및 use_reloader=False
으로 run()
을 호출해야합니다. 소스 파일 중 하나가 변경되면
경우 다시 시작하지 않습니다 확인 서버를 만들 것입니다 다음은
app.run(debug=True, use_reloader=False)
디버그 모드에서
억제 플라스크 서버가 다시 시작 일부 소스 파일이 변경에 대한
특정 시나리오의 경우 일부 소스 파일에 대해서만 서버를 다시 시작하지 않으려면 동적 모듈로드를 사용하십시오. 이를 달성하는 가장 쉬운 방법은 특정 모듈을 가져 오기에서 제거하고 __import__
함수를 대신 사용하는 것입니다. 당신의 temp.py
동적로드 전용 모듈로 이동하고 비슷한 방식으로 거기에서 리소스를 사용하도록 코드를 조정
try:
# Dynamic import
module = __import__('modules.temp')
try:
# Execute function
res = getattr(module, 'ololo')(args)
except AttributeError:
flask.current_app.logger.error('Function not found')
except ImportError:
flask.current_app.logger.error('Module not found')
: -
예제 코드 기능 modules.temp.ololo(args)
를 호출합니다.
고맙습니다.하지만이게 내가 원하는 걸 생각하지 못했습니까? 어떻게 파일을 새로 고치는 것을 멈추는 지 알고 있습니다. 특정 파일 만 다시로드하는 방법이 있는지 궁금합니다. (따라서 views.py를 변경하면 다시로드되지만 다른 파일은 변경되지 않습니다.) – Indigo
표준 방법으로는 불가능하지만 동적 모듈로드를 사용할 수 있습니다. 이는 원하는 것을 달성하는 유일한 방법 일 수 있습니다. –
동적로드 예제로 업데이트되었습니다. –