web-dev-qa-db-ja.com

djangoを使用してPOSTリクエストを送信するには?

htmlファイルは使いたくありませんが、DjangoでPOSTリクエストをする必要があります。

と同じように urllib2getリクエストを送信します。

27
zjm1126

Urllib2とurllibのメソッドを組み合わせることでうまくいきます。この2つを使用してデータを投稿する方法は次のとおりです。

post_data = [('name','Gladys'),]     # a sequence of two element tuples
result = urllib2.urlopen('http://example.com', urllib.urlencode(post_data))
content = result.read()

rlopen() は、URLを開くために使用する方法です。 rlencode() は、引数をパーセントエンコードされた文字列に変換します。

31
gladysbixly

python-requestsを使用して、受け入れられた回答の例を記述する方法は次のとおりです。

post_data = {'name': 'Gladys'}
response = requests.post('http://example.com', data=post_data)
content = response.content

はるかに直感的。より単純な例については、 Quickstart をご覧ください。

30
Rick Mohr

あなたが今見るべき唯一のこと:

http://docs.python-requests.org/en/latest/

6
lajarre

あなたはcanDjangoでurllib2を使用できます。結局のところ、それはまだpythonです。 urllib2POSTを送信するには、dataパラメーター( here から取得)を送信できます。

urllib2.urlopen(url [、data] [、timeout])

[..] HTTPリクエストは、データパラメータが指定されている場合、GETではなくPOSTになります

4
Gabi Purcaru

注意してください、あなたが使用しているとき???? 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))`
_

ドキュメンテーション ここにあります

1