【问题标题】:How do I use a 'q' to call an API and get a response in Django views?如何使用 'q' 调用 API 并在 Django 视图中获得响应?
【发布时间】:2020-07-24 15:03:29
【问题描述】:

我正在尝试查询此 api 并获得响应,但我显然没有正确执行,因为我知道它没有这么简单。

from django.shortcuts import render


def home(request):
    response = request.GET["https://api-adresse.data.gouv.fr/search/?q=8+bd+du+port"}
    return render(request, "home.html", {'response': response})

我希望能够给 API 一个地址,即:“8 Boulevard du Port 80000 Amiens”和 获取有关它的相关信息。即:gps坐标

这是 api:https://adresse.data.gouv.fr/api

我似乎无法找到有关如何使用 django 中的视图发出此类请求和处理响应的信息。

【问题讨论】:

    标签: python django python-requests response


    【解决方案1】:

    request.GET 是一个类似字典的对象,包含所有给定的 HTTP GET 参数,也称为查询参数或查询字符串。
    requests 是一个用于 Python 的简单 HTTP 库,允许您发送 HTTP/1.1 请求。

    from urllib.parse import quote_plus
    
    import requests
    from django.shortcuts import render
    
    
    def home(request):
        url = "https://api-adresse.data.gouv.fr/search/?q={}"
        address = "8 Boulevard du Port 80000 Amiens"
        response = requests.get(url.format(quote_plus(address)))
        # response.json()  # this will give you JSON response
        return render(request, "home.html", {"response": response})
    

    【讨论】:

    • 谢谢 Vishal Singh。这消除了我的错误。我得到的响应是: 这是否意味着我需要解析数据?
    • @JohnMullen 是的,您需要使用 response.json() 来获取 JSON 输出。我已经更新了这个答案。
    • 谢谢你维沙尔辛格!我像这样返回了 json() 方法:data = response.json()return render(request, "home.html", {"data": data}) 并得到了 JSON 输出。这是使用部分数据的最佳方法,即:gps 坐标?
    猜你喜欢
    • 1970-01-01
    • 2012-10-22
    • 2018-07-13
    • 1970-01-01
    • 2021-09-03
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多