request.GET只能取到url里传的数据,?后的XXX=XX,request.POST可以取到postman中body里k-v的数据,只能是post请求的时候取到,其他的请求方式通过request.POST拿不到请求数据,只能通过request.parse_file_upload方法实现,里面传两个参数(request.META, request),可以通过print(dir(request)),看到好多方法,包括parse_file_upload和content_type
先把views_new.py文件里的CaseSet类中的修改方法写一下,前提是导入from django.http import JsonResponse, HttpResponse,新增代码如下图:
在postman里可以用form-data的请求方式,但是可能会上传文件,也可以用x-www-form-urlencoded这种方式请求,这种方式不会上传文件,现在用第一种方式请求,如下图:
在pycharm的日志里print(request.META),打印请求的头信息,如下图:
把代码改一下,改成print(request.body),打印请求的正文信息,在用postman请求一下,在pycharm的日志里看到如下图:
传了id和name,从上图中可以看到中间的分隔符是\r\n...
接下来用x-www-form-urlencoded这种方式请求,如下图:
在pycharm的日志里print(request.META)打印请求的头信息,如下图:
把代码改一下,改成print(request.body),在用postman请求一下,在pycharm的日志里看到如下图:
传了id和name,从上图中可以看到中间的分隔符是&,为了解决这两种问题,要使用如下的代码: