我对Python/Django还很陌生,但我已经为一个网站设置了restapi(siteA.com网站),并且想要另一个网站(siteB.com网站)能够调用这个API并显示一些结果。为此,我向siteA添加了Django REST框架和Django Auth2提供程序。我现在可以使用curl调用API来获取访问令牌:
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]
这会得到我想要的答案:
^{pr2}$使用我获得的访问令牌,我现在可以调用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网站. 换句话说,我希望创建一个页面,如果使用某个seach查询调用该页面,则首先检查是否存在类似于[1]的访问令牌,然后获取搜索结果[2],并以JSON格式显示它们。我只是不知道怎么做。尝试从requests\u OAuth2中使用OAuth2,但不知道将curl语句转换为Python的正确方法。有什么帮助吗?在
如果你想的话siteB.com网站暴露siteA.com网站的API然后考虑django-rest-framework-proxy(一个不错的第三方包)。在
如果你想的话siteB.com网站嵌入结果的步骤siteA.com网站的API,然后您需要打开数据的API,然后将其传递到常用的模板呈现方法中。根据评论,你可以使用
urllib2
,但我推荐最好的Requests。在我希望这有帮助。在
相关问题 更多 >
编程相关推荐