如何隐藏GET请求也显示在Web上

时间:2017-08-02 20:55:38

标签: python django http python-requests django-urls

所以我正在开发一个django项目,其中一个目标是允许一个单独的python脚本发出HTTP请求(使用Requests库)来获取后的json数据认证。这很好用,问题是如果我直接去了request.get对象使用的url,我可以看到所有数据(不涉及任何用户身份验证)。这使我的身份验证过程毫无意义,因为只需转到url即可轻松查看数据。那么我如何隐藏网页上的数据不被查看,但是仍然允许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

1 个答案:

答案 0 :(得分:0)

默认情况下,您在django中的所有观看次数都是公开的,但checking request.userusing a login_required decorator可以轻松保护这些观看次数。