我有一个方法可以像这样获取以 json 格式格式化的 POST 数据
[{"UserName": "alexgv", "Password": "secretpassword"}]
这是方法
def Login(request, *args):
data = request.DATA
return Response(data)
"""
try:
m = User.objects.get(UserName=request.DATA['UserName'])
if m.password == request.DATA['Password']:
request.session['member_id'] = m.id
return HttpResponse("Testing")
except User.DoesNotExist:
return HttpResponse("Your username and password didn't match.")
"""
我希望能够从该 json POST 中获取一个变量。例如,也许我只想获取用户名或密码。我该怎么做?我已经尝试了各种方法,但似乎无法让它工作,而且我不想使用 request.POST.get,因为那意味着我将不得不发送 POST 变量。顺便说一句,我正在使用这个 http://django-rest-framework.org/ .我已通读文档,但似乎无法在其中找到任何内容。任何帮助表示赞赏。它现在返回的是一切。
请您参考如下方法:
像这样...
username = request.DATA['UserName']
顺便说一下,您可能不应该自己编写基于 session 的 API 登录 View ,因为它很容易出错。
对于提供 AJAX 样式功能的 API,您有两个不错的选择:
- 使用标准 Django 登录登录,由用户执行,而不是由 API 客户端执行。
- 使用基于凭据的身份验证方案,而不是基于 session 的身份验证方案,并使用 AJAX 执行登录。例如 Djoser 第三方包是一个很棒的库,包括基于 token 的登录和其他类似的 View ... https://github.com/sunscrapers/djoser
更新 还发现https://github.com/JamesRitchie/django-rest-framework-sav对于基于 AJAX session 的身份验证,这可能值得一看。
