【问题标题】:How to implement simple POST, GET, and DELETE in python如何在 python 中实现简单的 POST、GET 和 DELETE
【发布时间】:2016-10-27 06:57:15
【问题描述】:

短版:我可以只使用请求模块进行 POST、GET 和 DELETE 吗?

我正在尝试使用 Pinterest REST API。 (Pinterest API Explorer)

我走的是简单的路线,只是通过 oauth 手动获取了我的身份验证令牌,所以基本上我需要知道的只是 POST、GET 和 DELETE 到特定 URL 并包含参数,然后返回一个json。

我真的只需要三个API函数,列出授权用户的关注者(GET)、关注用户(POST)和取消关注用户(DELETE)。我需要的唯一参数是我手动获得的 access_token。

这似乎是一个简单的问题,但大约有 5 个 Python Pinterest API 包装器,它们都不完整,其中一些根本无法工作。我查看了 pycurl、httplib 和 requests 模块。它们看起来都有一个足够简单的 GET 方法,但使用 POST 和 DELETE 会变得更加复杂。看起来应该超级简单,一个函数,需要一个方法(POST/GET/DELETE/etc)、一个url和一组参数,为什么比这更复杂呢?如果这么简单,我不明白为什么所有这些 API 包装器都会完成一半,因为理论上它应该像为 API 中的每个函数调用具有这 3 个参数(第三个参数为数组)的函数一样简单.

在 Requests python 包中,RequestMethods 类下有这个函数: def request(self, method, url, fields=None, headers=None, **urlopen_kw)

看起来我理解除了标题和 **urlopen_kw 之外的所有内容,但我认为它应该在没有这些变量的情况下工作,对吗?

如果有人能指出我正确的方向,我将不胜感激。

【问题讨论】:

  • 对简短版的回答:是的。

标签: python rest post get pinterest


【解决方案1】:

来自docs

这是一个使用 Request 执行 PUT 请求的示例:

import urllib.request
DATA = b'some data'
req = urllib.request.Request(url='http://localhost:8080', data=DATA,method='PUT')
with urllib.request.urlopen(req) as f:
    pass
print(f.status)
print(f.reason)

在您的情况下,方法可以是“POST”、“Delete”或任何您喜欢的方法。

如果您想提出更复杂的请求,请查看 guidehttplib2 库 - 值得一读。

【讨论】:

    猜你喜欢
    • 2016-08-08
    • 2011-05-27
    • 1970-01-01
    • 2011-05-13
    • 2020-07-28
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多