Атрибут environ
Атрибут environ применяется к объекту запроса
request и возвращает словарь окружения WSGI.
Этот словарь содержит переменные сервера, заголовки,
параметры строки запроса и другие метаданные,
которые формирует WSGI-сервер. Атрибут не принимает
параметров и доступен только для чтения в контексте запроса.
Синтаксис
request.environ
Пример
Давайте выведем основные ключи словаря окружения в обработчике маршрута:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
env = request.environ
return {
'method': env['REQUEST_METHOD'],
'path': env['PATH_INFO'],
'scheme': env['wsgi.url_scheme'],
'server': env['SERVER_NAME'],
}
Результат выполнения кода для адреса /:
{
'method': 'GET',
'path': '/',
'scheme': 'http',
'server': '127.0.0.1'
}
Пример
Давайте получим заголовок HTTP_USER_AGENT
напрямую из словаря окружения:
from flask import Flask, request
app = Flask(__name__)
@app.route('/agent')
def agent():
env = request.environ
return env.get('HTTP_USER_AGENT', 'unknown')
Результат выполнения кода для браузера:
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Пример
Давайте переберём все ключи окружения и выведем их в шаблоне:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/env')
def env():
return render_template('env.html', items=request.environ.items())
Шаблон для вывода списка:
<ul>
{% for key, value in items %}
<li>{{ key }}: {{ value }}</li>
{% endfor %}
</ul>