私はRails 4アプリケーションを使用しており、APIにトークンベースの認証を使用しており、Python 3スクリプトを介してレコードを更新できる必要があります。
私の現在のスクリプトは次のようになります
import requests
import json
url = 'http://0.0.0.0:3000/api/v1/update_experiment.json'
payload = {'expt_name' : 'A60E001', 'status' : 'done' }
r = requests.patch(url, payload)
aPI認証を無効にしても問題ありません。
ヘッダーを追加する方法がわかりません、requests.patch
は、ドキュメントによると2つのパラメータのみを受け取ります。
次のヘッダー情報が追加されるポイントに到達する必要があります
'Authorization:Token token="xxxxxxxxxxxxxxxxxxxxxx"'
このタイプのヘッダーは、curlで問題なく動作します。 Python 3とリクエストでこれをどのように行うことができますか?
patch kwargsを取り、headers = {your_header}を渡すだけです:
def patch(url, data=None, **kwargs):
"""Sends a PATCH request.
:param url: URL for the new :class:`Request` object.
:param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
:param \*\*kwargs: Optional arguments that ``request`` takes.
:return: :class:`Response <Response>` object
:rtype: requests.Response
"""
return request('patch', url, data=data, **kwargs)
次のようなもの:
head = {"Authorization":"Token token=xxxxxxxxxxxxxxxxxxxxxx"}
url = 'http://0.0.0.0:3000/api/v1/update_experiment.json'
payload = {'expt_name' : 'A60E001', 'status' : 'done' }
r = requests.patch(url, payload, headers=head)