【发布时间】:2018-08-28 20:23:11
【问题描述】:
目前我有以下代码来处理传入的 GET 请求:
#view.py
def handle_request(request):
if request.method == 'GET':
<do something>
return response
此代码可以处理表单的简单 GET 请求:
curl http://some_url/
但现在我想添加基本的http认证:
curl --user username:password http://some_url/
我想修改我的views.py代码如下:
def handle_request(request):
if request.method == 'GET':
if username == some_hard_coded_approved_username and password == corresponding_password:
<do something>
return response
else:
response = HttpResponse("")
response.status_code = 401
return response
如何实现这一行来从 http 请求中解析用户名和密码:
if username == some_hard_coded_approved_username and password == corresponding_password:
【问题讨论】:
-
尝试 request.META['username'] 并检查
-
我在 views.ppy 中添加了 print(request.META['username']) 但这只是导致 500 错误
-
需要放在request.method=GET这一行之后
-
没有进展@Exprator,我把它放在方法 == GET 行之后。这是我正在使用的 curl 命令: curl --user dusername:dpassword some_url
-
你需要在 curl 中使用 username=username 和 password=password
标签: django django-rest-framework django-views django-request