【Django】有效解决postman进行post请求时服务器返回500错误

时间:2020-9-13 作者:admin

一、问题描述

在学习Django框架时,使用postman工具模拟客户端的各种请求,今天在使用类视图时遇到了一些问题:使用GET方式进行请求时,服务器处理ok,返回200状态码,但是换成POST请求时,服务器总是返回500状态码,其结果如下:
【Django】有效解决postman进行post请求时服务器返回500错误
使用GET方式进行请求:
【Django】有效解决postman进行post请求时服务器返回500错误
检查了下代码,没有发现什么问题,类视图代码如下:
【Django】有效解决postman进行post请求时服务器返回500错误
url配置也没有问题
【Django】有效解决postman进行post请求时服务器返回500错误
网上找了一下相关问题,发现很多都是提交的JSON数据格式有误等导致,但是我试着不提交任何数据还是会出现同样的问题,于是把postman各个位置的按钮都尝试着点了下,终于发现了问题所在。

二、分析原因

点击Body下面的Preview,发现其提示“RuntimeError at /center”,后面有一段解释,大致意思是django中设置了一个选项APPEND_SLASH=True,当前POST请求url中必须末尾有个’/’,我又去项目的settings文件中去找了下,并没有发现这个设置,可能是django默认设置的。
【Django】有效解决postman进行post请求时服务器返回500错误

三、解决办法

发现是因为url末尾缺少了’/‘后,再url末尾加上’/’再试一下发现果然成功啦。
【Django】有效解决postman进行post请求时服务器返回500错误
不过比较奇怪的是以GET方式进行请求时末尾不加/是可以请求成功的,不知道是不是因为django默认设置的问题。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。