Атрибут environ
Атрибут environ применяется к объекту запроса
Request
и возвращает словарь WSGI-окружения. Этот словарь
формируется сервером и содержит переменные CGI,
заголовки HTTP, а также произвольные данные,
которые промежуточное ПО (middleware) записало
в окружение. Атрибут доступен только для чтения
и представляет собой обычный словарь Python,
поэтому к его элементам можно обращаться по ключу.
Синтаксис
request.environ
Пример
Давайте выведем значение переменной окружения
REQUEST_METHOD, которая хранит HTTP-метод запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
return request.environ['REQUEST_METHOD']
Результат выполнения кода для GET-запроса:
"GET"
Пример
Давайте получим IP-адрес клиента через переменную
окружения REMOTE_ADDR:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
return request.environ.get('REMOTE_ADDR', 'unknown')
Результат выполнения кода:
"127.0.0.1"
Пример
Давайте переберём все ключи окружения и выведем
те, что начинаются с префикса HTTP_,
то есть заголовки запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
res = []
for key in request.environ:
if key.startswith('HTTP_'):
res.append(key)
return ', '.join(res)
Результат выполнения кода:
"HTTP_HOST, HTTP_USER_AGENT, HTTP_ACCEPT"