2014-01-05 4 views
3

Документация флагов гласит, что существует 2 локальных контекста: контекст приложения и контекст запроса. Оба они создаются по запросу и срываются, когда они заканчиваются.В чем разница между контекстами приложений и запросов?

Итак, какая разница? Каковы варианты использования для каждого из них? Существуют ли какие-либо условия, когда создается только одна из них?

ответ

4

Оба изделия создаются по запросу и срываются, когда они заканчиваются.

Это верно в жизненном цикле запроса. Флажок создает контекст приложения, контекст запроса, делает магию, уничтожает контекст запроса, разрушает контекст приложения.

Контекст приложения может существовать без запроса, и именно по этой причине у вас есть оба. Например, если я запускаю из оболочки, я могу создать app_context без запроса и получить доступ к прокси-серверу'current_app`.

Это дизайнерское решение для разделения проблем и дает вам возможность не создавать контекст запроса. Контекст запроса дорог.

В старой фляге (0.7?) У вас был только контекст запроса и был создан current_app с прокси Werkzeug. Таким образом, контекст приложения просто создает шаблон.

Некоторые документы об appcontext, но вы, вероятно, уже прочитали: http://flask.pocoo.org/docs/appcontext/

Смежные вопросы