Sobes.tech
Back to questions
Junior — Middle
62

Имели ли вы опыт работы с глобальным объектом flask.g в своих проектах?

Answer from AI

sobes.tech AI

flask.g — это глобальный объект в Flask, который используется для хранения данных, специфичных для текущего запроса. Он существует только в контексте одного запроса и позволяет удобно передавать информацию между функциями и обработчиками без использования глобальных переменных.

Например, можно сохранить соединение с базой данных в flask.g, чтобы использовать его в разных местах обработчика:

from flask import Flask, g
import sqlite3

app = Flask(__name__)

def get_db():
    if 'db' not in g:
        g.db = sqlite3.connect('database.db')
    return g.db

@app.route('/')
def index():
    db = get_db()
    # использовать db для запросов
    return 'Hello'

@app.teardown_appcontext
def close_db(exception):
    db = g.pop('db', None)
    if db is not None:
        db.close()

Таким образом, flask.g помогает хранить и управлять ресурсами, связанными с текущим запросом.