2014-01-05 3 views
3

플라스크 설명서에는 응용 프로그램 컨텍스트와 요청 컨텍스트라는 2 개의 로컬 컨텍스트가 있다고되어 있습니다. 둘 다 요청에 따라 생성되고 완료되면 분리됩니다.응용 프로그램과 요청 컨텍스트의 차이점은 무엇입니까?

그래서 차이점은 무엇입니까? 각각의 사용 사례는 무엇입니까? 이 중 하나만 만들면 어떤 조건이 있습니까?

답변

4

두 가지 모두 요청에 따라 생성되고 완료되면 제거됩니다.

요청주기에는 해당됩니다. 플라스크는 앱 컨텍스트, 요청 컨텍스트를 만들고, 마술을하고, 요청 컨텍스트를 파괴하고, 앱 컨텍스트를 파괴합니다.

응용 프로그램 컨텍스트가 요청없이 존재할 수 있으며 그 이유가 둘 다 있습니다. 예를 들어, 쉘에서 실행중인 경우 요청없이 app_context을 만들고 'current_app` 프록시에 액세스 할 수 있습니다.

우려를 분리하고 요청 컨텍스트를 만들지 않도록 선택할 수 있습니다. 요청 컨텍스트가 비싸다.

오래된 플라스크 (0.7?)에서는 요청 컨텍스트 만 있고 Werkzeug 프록시를 사용하여 current_app을 만들었습니다. 따라서 애플리케이션 컨텍스트는 단지 패턴을 생성합니다.

appcontext에 대한 문서가 있지만 이미 읽은 것 같습니다 : http://flask.pocoo.org/docs/appcontext/

관련 문제