私はdjangoプロジェクトに取り組んでいます。目的の1つは、別のpythonスクリプトがHTTPリクエスト(Requestsライブラリを使用)を行ってjsonデータを取得できるようにすることですが認証された後の。これは正常に動作しますが、問題は、request.getオブジェクトが使用するURLに直接アクセスすると、すべてのデータが表示されます(ユーザー認証が行われていない状態です)。これは、単にURLに行くだけでデータが簡単に表示されるため、認証処理が無意味になります。では、ウェブ側のデータを表示しないようにするにはどうしたらよいですか?GETリクエストでスクリプトにデータを引き込むことはできますか?GETリクエストを非表示にする方法
私は既に、プロジェクトのWebインターフェイス部分(データを表示している)の認証システムを持っています。私はそれを後ろに置こうとしましたが、成功しませんでした。
import json, requests, _mysql
login_attempt = requests.post('http://127.0.0.1:8000/m_app/data_login/',
{'username': 'test', 'password': 'password1234'})
if login_attempt.content.decode('UTF-8') == 'Successful':
print('Logged in.')
else:
print('Not logged in.')
cookies = dict(sessionid=login_attempt.cookies.get('sessionid'))
data = requests.get('http://127.0.0.1:8000/m_app/load/data', #if I type this URL in, I see the data
cookies=cookies)
print(data.content) #prints desired data
これを参照してください:https://docs.djangoproject.com/en/1.11/topics/auth/default/#django.contrib.auth.decorators.login_required –