Переменная g
Переменная g применяется внутри контекста
приложения Flask и служит для хранения данных,
живущих ровно один запрос. Объект g
доступен из модуля flask и работает как
обычное пространство имён: ему можно присваивать
любые атрибуты, а затем читать их в других
функциях, вызванных в рамках того же запроса.
После завершения запроса все данные из g
очищаются, поэтому переменная удобна для передачи
результатов между обработчиками, декораторами и
функциями шаблонов.
Синтаксис
from flask import g
g.attr = value
Пример
Давайте сохраним в g значение и прочитаем
его внутри того же запроса:
from flask import Flask, g
app = Flask(__name__)
@app.before_request
def set_data():
g.text = 'abcde'
@app.route('/')
def index():
return g.text
Результат выполнения кода:
abcde
Пример
Давайте запишем в g список и выведем его
через шаблон Jinja:
from flask import Flask, g, render_template
app = Flask(__name__)
@app.before_request
def set_data():
g.res = ['a', 'b', 'c', 'd', 'e']
@app.route('/')
def index():
return render_template('index.html')
Содержимое шаблона:
<+jinja+>
{% for elem in g.res %}
{{ elem }}
{% endfor %} <-jinja+>Результат выполнения кода:
<p>a</p>
<p>b</p>
<p>c</p>
<p>d</p>
<p>e</p>
Смотрите также
-
метод
get,
который читает значение атрибута из g -
метод
pop,
который удаляет атрибут из g и возвращает его -
метод
setdefault,
который задаёт значение атрибута, если его нет -
переменную
g,
которая хранит глобальные данные запроса