怎么创办一个网站,在线网页制作源码,阿里云登录,东莞市住房建设局网站前端页面报错#xff1a;1、页面报错500#xff0c;首先我们可以知道是服务端的问题#xff0c;需要去看下服务端的报错信息#xff1a;2、首先我们查看下前端是否给后端传了id:我们可以看到接口是把ID返回了#xff0c;就需要再看下p_id是什么情况了。3、我们再次请求1、页面报错500首先我们可以知道是服务端的问题需要去看下服务端的报错信息2、首先我们查看下前端是否给后端传了id:我们可以看到接口是把ID返回了就需要再看下p_id是什么情况了。3、我们再次请求把p_id进行打印看下具体是什么put接口代码class PutView(BaseView):def put(self, request):# Django 并没有处理PUT数据,不可以使用request.PUT# 实际put传过来的数据是在request.body中而获取到的数据是:bname%E5%8F%82%E6%95%B06desc%E5%8F%82%E6%95%B06%E6%8F%8F%E8%BF%B0value100866# 需要导入 from django.http import QueryDict,QueryDict(request.body)} 处理下# 更新数据需要告知是具体更新哪一条数据# 获取要更新哪条数据的主键idp_id request.PUT.get(id)print(p_id,p_id)# 通过id 从数据库中取这条数据 objdata_obj self.model.objects.get(idp_id)# 第一个参数前端传过来的数据# 第二个参数instance数据库获取的要更新的对象form_obj self.form(request.PUT, instancedata_obj)if form_obj.is_valid():# 通过 form中的save方法进行数据更新form_obj.save()return NbResponse()# return JsonResponse({code: 200, msg: put接口数据更新成功})else:return NbResponse(code500,msgform_obj.errors.get_json_data())middle_wares.pyclass PutMethodMiddleware(MiddlewareMixin):def process_request(self, request):# 请求过来之后先走到这里if request.method PUT:request.PUT QueryDict(request.body)分析因Django中没有PUT 方法是我们在 middle_wares.py 中分装了后实现的PUT 方法所以我们就需要看下【QueryDict(request.body)】返回的是什么class PutMethodMiddleware(MiddlewareMixin):def process_request(self, request):# 请求过来之后先走到这里if request.method PUT:print(QueryDict(request.body),QueryDict(request.body))request.PUT QueryDict(request.body)结果QueryDict(request.body) QueryDict: {------WebKitFormBoundarycRPtgGxEmmEAlBmC\r\nContent-Disposition: form-data: [], name: [name\r\n\r\n继续测试111\r\n------WebKitFormBoundarycRPtgGxEmmEAlBmC\r\nContent-Disposition: form-data, value\r\n\r\n继续测试\r\n------WebKitFormBoundarycRPtgGxEmmEAlBmC\r\nContent-Disposition: form-data, desc\r\n\r\n继续测试\r\n------WebKitFormBoundarycRPtgGxEmmEAlBmC\r\nContent-Disposition: form-data, id\r\n\r\n19\r\n------WebKitFormBoundarycRPtgGxEmmEAlBmC--\r\n]}我们可以发现数据格式并不是我们以往的那样我就需要回到前端中查看下【Request Headers】中的信息Content-Type发生了变化所以传过来的数据也发生了变化所以后端代码就需要把代码进行调整兼容这种传递的方式。查验源码后进行调整class PutMethodMiddleware(MiddlewareMixin):staticmethoddef process_request(self, request):# 请求过来之后先走到这里,然后再去请求视图if request.method PUT:if boundary in request.content_params.kes():put_data,files request.parse_file_upload(request.MEAT,request)request.PUT put_datarequest._files files # 是因为request.FILES 里面取值的时候就是_fileselse:request.PUT QueryDict(request.bady)已可正常修改无报错最后作为一位过来人也是希望大家少走一些弯路在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈这些资料希望能给你前进的路上带来帮助。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。