Использование модуля запросов для использования API? - PullRequest
1 голос
/ 04 марта 2020

Я создал API с некоторыми конечными точками, такими как:

www.domain.com/api/items
www.domain.com/api/items/1
www.domain.com/api/items/available

Теперь я хочу иметь возможность выполнять те же самые запросы из моих представлений, чтобы заполнить мой HTML. Я читал, что вы можете сделать это, используя:

requests.get('localhost/api/items')

Но мне интересно, есть ли способ сделать это внутренне, например, вызвать непосредственный вызов viewset или что-то подобное.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

В зависимости от цели, почему вам нужно вызывать это внутреннее представление?

Возможно, вы хотите запустить (повторно использовать) уже существующий код

В общем, было бы лучше выйти из представления код в функции какого-то менеджера, а затем запустить новую функцию в обоих представлениях.

0 голосов
/ 04 марта 2020

Это просто, используя Django инструменты тестирования .

>>> from django.test import Client
>>> c = Client()
>>> response = c.post('/api/items')
>>> response.status_code
200
>>> response.content
<response html here>

Обратите внимание, что при использовании тестового клиента запросы HTTP фактически не отправляются. Как указано в Django документах:

Тестовый клиент - это класс Python, который действует как фиктивный веб-браузер, позволяя вам проверять свои представления и взаимодействовать с вашим Django -поддержанным прикладное программное обеспечение.

Вы можете подготовить модульные тесты, используя эти инструменты в Django, используя по существу ту же семантику , что и стандартный unittest модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...