Переменная request
Переменная request доступна внутри Jinja-шаблона и хранит объект
текущего HTTP-запроса. Через неё получают аргументы строки запроса
(request.args), данные формы (request.form), заголовки
(request.headers), cookies (request.cookies), метод
(request.method), путь (request.path) и другую информацию.
Значения доступны как атрибуты объекта, а также по ключу через
квадратные скобки.
Синтаксис
{{ request.attr }}
{{ request['attr'] }}
{{ request.attr['key'] }}
Пример
Давайте выведем метод запроса и путь в шаблоне:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
Шаблон:
<p>{{ request.method }}</p>
<p>{{ request.path }}</p>
Результат выполнения кода для адреса /:
<p>GET</p>
<p>/</p>
Пример
Давайте получим параметр name из строки запроса:
<p>{{ request.args.get('name') }}</p>
Результат выполнения кода для адреса /?name=abcde:
<p>abcde</p>
Пример
Давайте выведем значение заголовка User-Agent:
<p>{{ request.headers.get('User-Agent') }}</p>
Результат выполнения кода для браузера:
<p>Mozilla/5.0</p>
Пример
Давайте проверим наличие параметра user в строке запроса:
{% if request.args.get('user') %}
<p>{{ request.args.get('user') }}</p>
{% else %}
<p>guest</p>
{% endif %}
Результат выполнения кода для адреса /?user=abcde:
<p>abcde</p>
Смотрите также
-
функцию
render_template,
которая рендерит HTML-шаблон -
переменную
session,
которая хранит данные между запросами -
переменную
config,
которая хранит настройки приложения -
тег
if,
который выполняет ветвление в шаблоне