기본적으로 기본 제공 서버 ( Flask.run
)를 사용하여 Flask 애플리케이션을 실행할 때 Python 파일을 모니터링하고 코드가 변경되면 앱을 자동으로 다시로드합니다.
* Detected change in '/home/xion/hello-world/app.py', reloading
* Restarting with reloader
불행히도 이것은 * .py 파일에서만 작동하는 것으로 보이며이 기능을 다른 파일로 확장하는 방법을 찾지 못하는 것 같습니다. 특히 템플릿이 변경 될 때 Flask가 앱을 다시 시작하도록하는 것이 매우 유용합니다 . 몇 번이나 템플릿에서 마크 업을 조작하고 변경 사항이 표시되지 않아 혼란스러워지는 횟수를 잃어 버렸습니다.
그렇다면 Flask가 템플릿 디렉토리에 파일을 모니터링하는 방법이 있습니까? 아니면 프레임 워크의 소스로 들어가야합니까?
편집 : Ubuntu 10.10을 사용하고 있습니다. 다른 플랫폼에서는 실제로 시도하지 않았습니다.
추가 질문 후, 나는 실제로 템플릿이 변경 발견 되는 응용 프로그램 자체를 다시로드하지 않고, 실시간으로 업데이트합니다. 그러나 이것은에 전달되는 템플릿에만 적용되는 것 같습니다 flask.render_template
.
하지만 내 앱에는 Jinja 템플릿에서 사용하는 재사용 가능한 매개 변수화 된 구성 요소가 많이 있습니다. 이들은로 구현되고 {% macro %}
전용 "모듈"에 상주하며 {% import %}
실제 페이지에 포함됩니다. 모두 nice 및 DRY ... 단, 가져온 템플릿은 전혀 통과하지 않기 때문에 수정 여부를 확인하지 않는 render_template
것 같습니다.
(이상하게도를 통해 호출 된 템플릿에서는 이런 일이 발생하지 않습니다 {% extends %}
. {% include %}
은 실제로 사용하지 않기 때문에 전혀 모릅니다.)
정리하자면이 현상의 뿌리는 Jinja와 Flask 또는 Werkzeug 사이에있는 것 같습니다. 나는 그것이 그 프로젝트 중 하나를 위해 버그 추적기로 여행을 보증 할 수 있다고 생각한다. :) 한편, 나는 jd를 받아 들였다 . 그것이 내가 실제로 사용한 해결책이기 때문에 대답입니다. 그리고 그것은 매력처럼 작동합니다.