[英]How to send a POST request using django?
我不想使用html
文件,但只有使用 django 我必须发出 POST 请求。
就像urllib2
发送get
请求一样。
以下是使用python-requests
编写已接受答案示例的方法:
post_data = {'name': 'Gladys'}
response = requests.post('http://example.com', data=post_data)
content = response.content
更直观。 有关更简单的示例,请参阅快速入门。
在 Python 2 中,来自urllib2
和urllib
的方法的组合可以解决问题。 以下是我如何使用两者发布数据:
post_data = [('name','Gladys'),] # a sequence of two element tuples
result = urllib2.urlopen('http://example.com', urllib.urlencode(post_data))
content = result.read()
urlopen()是一种用于打开 url 的方法。 urlencode()将参数转换为百分比编码的字符串。
你现在应该看的唯一一件事:
您可以在 Django 中使用urllib2
。 毕竟,它仍然是python。 要使用urllib2
发送POST
,您可以发送data
参数(取自此处):
urllib2.urlopen(url[, 数据][, 超时])
[..] 当提供数据参数时,HTTP 请求将是 POST 而不是 GET
请注意,当您使用 🐍 requests
,并使POST
请求在data
参数中传递您的字典,如下所示:
payload = {'param1':1, 'param2':2}
r = request.post('https://domain.tld', data=payload)
您正在传递参数form-encoded
。
如果您只想使用 JSON(服务器-服务器集成中最流行的类型)发送POST
请求,您需要在data
参数中提供str()
。 如果使用 JSON,您需要import json
lib 并像这样制作:
payload = {'param1':1, 'param2':2}
r = request.post('https://domain.tld', data=json.dumps(payload))`
文档在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.