当前位置: 首页 > news >正文

建站公司专业定制中国十大广告公司排行榜

建站公司专业定制,中国十大广告公司排行榜,信丰网站制作,山西网络营销seo前端页面报错: 1、页面报错500,首先我们可以知道是服务端的问题,需要去看下服务端的报错信息: 2、首先我们查看下前端是否给后端传了id: 我们可以看到接口是把ID返回了,就需要再看下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中,而获取到的数据是:b'name=%E5%8F%82%E6%95%B06&desc=%E5%8F%82%E6%95%B06%E6%8F%8F%E8%BF%B0&value=100866'# 需要导入 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(id=p_id)# 第一个参数:前端传过来的数据# 第二个参数(instance):数据库获取的,要更新的对象form_obj = self.form(request.PUT, instance=data_obj)if form_obj.is_valid():# 通过 form中的save方法进行数据更新form_obj.save()return NbResponse()# return JsonResponse({"code": 200, "msg": "put接口数据更新成功"})else:return NbResponse(code=500,msg=form_obj.errors.get_json_data())
middle_wares.py:
class 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------WebKitFormBoundarycRPtgGxEmm
EAlBmC\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)

已可正常修改无报错:

在这里插入图片描述

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

http://www.fp688.cn/news/156038.html

相关文章:

  • 义乌系统开发青岛seo服务哪家好
  • 前端学习网站百度seo优化推广
  • 网站的联系我们怎么做企业宣传软文范例
  • 做的网站怎么放在网上seo公司后付费
  • 1个ip可以做几个网站吗南京seo外包
  • 网站建设百度搜索到左边的图seo的基础是什么
  • 网站可以自己做吗小程序开发平台有哪些
  • 酒店网络设计方案seo外包品牌
  • 京东网站设计特点深圳谷歌seo公司
  • 动态网站开发从入门到实践外包网络推广公司推广网站
  • 软件研发和开发的区别seo关键词排名优化的方法
  • 洛宁网站建设湖南省人民政府
  • ps模板网站推荐厦门百度快速优化排名
  • 新疆伊犁河建设管理局网站百度seo快速排名
  • 自己网站做反链常州百度推广代理
  • 织梦网站联系我们的地图怎么做网络推广和网络营销的区别
  • 意大利语网站建设苏州百度快照优化排名
  • 拉了专线可以直接做网站吗军事最新消息
  • 免费ppt模板网站哪个好用活动策划公司
  • 有网站后台模板如何做数据库seo关键字排名优化
  • 网站建设 服务器nba排名西部和东部
  • 确定网站界面宁波seo快速优化教程
  • wordpress 悬浮音乐百度关键词搜索优化
  • 男人是用什么做的视频网站统计站老站长推荐草莓
  • 网站上的图片格式怎么做在seo优化中
  • 临沂专业做网站公司平台推广策划方案
  • 专门做当归的网站挖掘关键词工具
  • 做影视网站被告怎么办seo培训
  • 天津网站运营武汉网站seo公司
  • 国内建筑设计公司排名成都网站seo报价