使用 Django REST 从外部 URL 以 JSON 格式获取数据
Get data from external URL in JSON format with Django REST
我想在 Django 中做简单的 Rest API。这是我在 django 中进行 Rest 的第一种方法,但现在还不错 ;)
现在我有一个包含两个字段 brand
和 model
的模型数据库。使用 Postman,我可以 GET、POST 和 DELETE 对象,很酷。
但我坚持的是 ->
当我 POST 一个对象时,首先我想检查给定 brand
的 model
是否存在。我想在特定网站上查看: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 端点提供的 link。他们还可能为模型提供过滤功能。那么就没有必要搜索整个响应了。
正在从此 post 的字典中搜索值:
我想在 Django 中做简单的 Rest API。这是我在 django 中进行 Rest 的第一种方法,但现在还不错 ;)
现在我有一个包含两个字段 brand
和 model
的模型数据库。使用 Postman,我可以 GET、POST 和 DELETE 对象,很酷。
但我坚持的是 ->
当我 POST 一个对象时,首先我想检查给定 brand
的 model
是否存在。我想在特定网站上查看: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 端点提供的 link。他们还可能为模型提供过滤功能。那么就没有必要搜索整个响应了。
正在从此 post 的字典中搜索值: