Метод head класса FlaskClient
Метод head применяется к объекту FlaskClient,
который создаётся у приложения Flask через метод test_client.
Метод отправляет HEAD-запрос по указанному пути и возвращает
объект TestResponse. Первым параметром передаётся путь URL,
далее можно передать дополнительные аргументы, например
query_string, headers, follow_redirects.
HEAD-запрос похож на GET, но сервер возвращает только заголовки
без тела ответа.
Синтаксис
client.head(path, [query_string], [headers], [follow_redirects])
Пример
Давайте создадим тестовый клиент и выполним HEAD-запрос
к маршруту '/user':
from flask import Flask
app = Flask(__name__)
@app.route('/user')
def user():
return 'abcde'
client = app.test_client()
res = client.head('/user')
print(res.status_code)
print(res.data)
Результат выполнения кода:
200
b''
Как видно, HEAD-запрос возвращает статус 200,
но тело ответа пустое.
Пример
Давайте проверим заголовки ответа после HEAD-запроса:
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/article')
def article():
res = make_response('article')
res.headers['X-Custom'] = 'abcde'
return res
client = app.test_client()
res = client.head('/article')
print(res.headers['X-Custom'])
print(res.content_type)
Результат выполнения кода:
"abcde"
"text/html; charset=utf-8"
Пример
Давайте передадим параметры строки запроса в HEAD-запросе:
from flask import Flask, request, make_response
app = Flask(__name__)
@app.route('/search')
def search():
q = request.args.get('q', '')
res = make_response('')
res.headers['X-Query'] = q
return res
client = app.test_client()
res = client.head('/search', query_string={'q': 'hello'})
print(res.headers['X-Query'])
Результат выполнения кода:
"hello"
Смотрите также
-
класс
FlaskClient,
который используется для тестирования приложения -
метод
get,
который выполняет GET-запрос в тестах -
метод
options,
который выполняет OPTIONS-запрос в тестах -
класс
TestResponse,
который представляет ответ приложения в тестах