gpt4 book ai didi

python - 从一个 Django 站点到另一个站点的 API 调用

转载 作者:行者123 更新时间:2023-11-30 23:33:14 25 4
gpt4 key购买 nike

我对 Python/Django 还很陌生,但我已经为一个网站 (siteA.com) 设置了 REST API,并且希望另一个网站 (siteB.com) 能够调用此 API 并显示一些结果。为此,我已将 Django REST Framework 和 Django Auth2 Provider 添加到 siteA。我现在可以使用curl 调用API 来获取访问 token :

curl -X POST -d "client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=password&username=USERNAME&password=PASSWORD" http://www.siteA.com/oauth2/access_token   [1]

这给出了我想要的响应:

{"access_token": "72x63615xe29f4xfdadexbcd77x27b5fx0bceexx", "scope": "read", "expires_in": 86399, "refresh_token": "5fx80dx320cx3abe7d0x27d5f1x64e7x413x0f70"}

使用我获得的访问 token ,我现在可以调用 API:

curl -v -H "Authorization: Bearer 72x63615xe29f4xfdadexbcd77x27b5fx0bceexx" "http://www.siteA.com/api/?q=SOMESTRING&per_page=3&page=1&sort=random"     [2]

这为我提供了一个 JSON 响应,其中包含查询字符串“SOMESTRING”的 3 个结果。

一切正常,但现在我想从 siteB.com 内部调用这些电话。换句话说,我想创建一个页面,如果使用某个搜索查询调用,则首先检查是否存在 [1] 中的访问 token ,然后获取搜索结果 [2] 并以 JSON 格式显示它们。我只是不知道该怎么做。尝试使用requests_oauth2中的OAuth2,但只是不知道将curl语句翻译成Python的正确方法。有什么帮助吗?

最佳答案

如果您希望 siteB.com 公开 siteA.com 的 API,请考虑 django-rest-framework-proxy (一个不错的第三方包)。

如果您希望 siteB.com 将 siteA.com 的 API 的结果嵌入到常规 HTML 页面中,那么您需要访问 API 来获取数据,然后将其传递到常用的模板呈现方法中。根据评论,您可以使用 urllib2 但我推荐优秀的 Requests .

希望对您有所帮助。

关于python - 从一个 Django 站点到另一个站点的 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19009856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com