Python 3.x 如何修复curl-django-rest框架?
如何修复curl-django-rest框架,我得到如下错误Python 3.x 如何修复curl-django-rest框架?,python-3.x,django,django-rest-framework,django-3.1,Python 3.x,Django,Django Rest Framework,Django 3.1,如何修复curl-django-rest框架,我得到如下错误 rest_framework.exceptions.ParseError: JSON parse error - Expecting value: line 1 column 1 (char 0) 这是我的卷发 curl -X POST http://127.0.0.1:8000/api/signup -H "Content-Type: application/json" -d '{"username&
rest_framework.exceptions.ParseError: JSON parse error - Expecting value: line 1 column 1 (char 0)
这是我的卷发
curl -X POST http://127.0.0.1:8000/api/signup -H "Content-Type: application/json" -d '{"username":"indah","password":"indah123"}'
这是我的密码
@csrf_exempt
def signup(request):
if request.method == 'POST':
try:
data = JSONParser().parse(request)
user = User.objects.create_user(data['username'], password=data['password'])
user.save()
token = Token.objects.create(user=user)
return JsonResponse({'token':str(token)}, status=201)
except IntegrityError:
return JsonResponse({'error':'That username has already been taken. Please choose a new username'}, status=400)
并得到一条直线上的错误
data = JSONParser().parse(request)
我使用cmd windows进行curl,curl有什么问题?这里有一些可能的增强功能(从上到下):
@require\u http\u方法(['POST'])
允许您在request.method='POST':时删除此代码,Django将自动用另一种方法响应请求。可以从django.views.decorators.http导入此装饰程序。http导入需要\u http\u方法
import JSON
中的通用JSON模块
request.data
。因此,如果您将使用import json
,您可以得到如下对象data=json.loads(request.data.encode())
201
进行响应。如果客户端不检查响应是否为200 OK
,那就好了
尝试解析
request.data
或request.POST
。正如@DMalan建议的那样,尝试解析request.data
,它会起作用。