current_app и объект g
Получайте доступ к активному приложению и хранилищу запроса.
«current_app и объект g» — бесплатный урок Flask Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Flask Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Flask Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Meet current_app
current_app is a proxy that always points to the app handling the work right now. Import it whenever you need the active application.
from flask import current_appWhy Not Import app?
Importing your app object directly causes circular imports as projects grow. current_app sidesteps that by resolving the app at runtime.
Reading Config
A common use is reading settings: current_app.config gives you the active app's configuration without importing the app module.
key = current_app.config["SECRET_KEY"]It Needs a Context
current_app only works while an app context is active. Inside a view that is automatic, since the request pushed one for you.
Meet the g Object
g is a simple scratchpad for one request. Attach anything to it and read it back later in the same request.
from flask import g
g.user = "alice"g Is Per Request
The g object is reset for every request. Data you stash on it never leaks into another visitor's request.
A Typical g Use
Use g to share work across functions in one request, like caching the current user so you fetch it from the database only once.
if "db" not in g:
g.db = connect()g Is Not Storage
Do not treat g as a database. It forgets everything the moment the request ends, so use it only for that request's lifetime.
g Lives in the App Context
Surprisingly, g belongs to the app context, not the request context. In practice both exist during a request, so it just works.
Cleaning Up With g
Pair g with teardown handlers to close what you opened, like closing a database connection after the response is sent.
@app.teardown_appcontext
def close(exc):
g.pop("db", None)current_app and g Together
They pair nicely: read settings from current_app, then stash request-specific results on g so the rest of the request can reuse them.
Quick Check
Let us pin down what g is for.
Recap
Two handy proxies: current_app finds the active app and its config, while g is a per-request scratchpad you wipe clean each time. 🎉
Часто задаваемые вопросы
Урок «current_app и объект g» бесплатный?
Да — полный текст урока «current_app и объект g» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Flask Academy, подпишись на CoddyKit PRO. Курс Flask Academy содержит 4 уроков всего.
Чему я научусь в уроке «current_app и объект g»?
Получайте доступ к активному приложению и хранилищу запроса. Ты практикуешь Flask Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Flask Academy?
Предыдущий опыт не требуется. Flask Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «current_app и объект g»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Flask Academy?
Да. Каждый урок Flask Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Контекст приложения и контекст запроса
- current_app и объект g
- Локальные данные контекста и безопасность потоков
- Помещение контекста в сценариях и оболочках