Атрибут cookies
Атрибут cookies применяется к объекту запроса
request и возвращает словарь всех cookies,
которые клиент передал вместе с HTTP-запросом.
Ключами словаря выступают имена cookies, а значениями -
их строковые значения. Если cookies отсутствуют,
возвращается пустой словарь.
Атрибут доступен только для чтения и не позволяет
изменять cookies на стороне клиента. Для установки
новых cookies используется метод set_cookie
объекта ответа.
Синтаксис
request.cookies
Пример
Давайте выведем все cookies, полученные от клиента:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return str(request.cookies)
Если клиент отправил cookie user=abcde,
то результат выполнения кода будет таким:
"ImmutableMultiDict([('user', 'abcde')])"
Пример
Давайте получим значение конкретного cookie по его имени:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
user = request.cookies.get('user')
return str(user)
Результат выполнения кода при наличии cookie user=abcde:
"abcde"
Пример
Давайте переберём все cookies в цикле и выведем их пары ключ-значение:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
res = ''
for key, value in request.cookies.items():
res += key + '=' + value + '; '
return res
Результат выполнения кода для cookies
user=abcde и token=hello:
"user=abcde; token=hello; "
Пример
Давайте установим cookie на стороне сервера и затем прочитаем его при следующем запросе:
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/set')
def set_cookie():
res = make_response('cookie set')
res.set_cookie('user', 'abcde')
return res
@app.route('/get')
def get_cookie():
user = request.cookies.get('user')
return str(user)
Результат выполнения кода при обращении
к адресу /get после посещения /set:
"abcde"