Получение данных из внешнего URL в формате JSON с помощью Django REST
Я хочу сделать простой Rest API в Django. Это мой первый подход к Rest в django, но пока все идет не так уж плохо ;)
На данный момент у меня есть модельная база данных с двумя полями brand
и model
. С помощью Postman я могу GET, POST и DELETE объекты, круто.
Но вот на чем я застрял, так это на ->
Когда я POST объект, сначала я хочу проверить, существует ли этот model
с заданным brand
вообще. Я хочу проверить его на определенном сайте: link. (В URL этого сайта я могу изменить название бренда, чтобы он выдал мне список моделей с заданным брендом)
Мой подход был бы таким: когда request.method=='POST'
сначала получить данные с сайта, загрузить их в модель и затем как-то сравнить их с данными в POST запросе.
Но я не знаю, как до этого дойти :)
Является ли это хорошим подходом или есть способ напрямую посмотреть данные на данном сайте?
(Для меня нет необходимости приводить свой код, потому что в нем нет ничего особенного, но скажите мне, если я не прав!)
Учитывая вашу информацию, вы можете справиться с этим следующим образом:
import requests
API_URL = "https://vpic.nhtsa.dot.gov/api/vehicles/getmodelsformake/audi?format=json"
SEARCH_FOR_MODEL = "RS5"
try:
r = requests.get(API_URL)
models = r.json()
except:
logging.WARNING(f"Fetch models from {API_URL} failed")
result = next(
(model for model in models["Results"] if model["Model_Name"] == SEARCH_FOR_MODEL),
None,
)
if not result is None:
print(f"Model {SEARCH_FOR_MODEL} found")
else:
print(f"Model {SEARCH_FOR_MODEL} not found")
Это основано на ссылке, которую вы предоставили для конечной точки API. Они также могут предложить функцию фильтрации для моделей. Тогда нет необходимости искать весь ответ.
Поиск значений в словаре из этого поста: https://stackoverflow.com/a/8653568/4151233