当前位置: 首页 > 知识库问答 >
问题:

Django中POST请求后的

巴帅
2023-03-14

我正在向本地运行的Django服务器发出post请求。我正在将请求发送到http://127.0.0.1/login/。这是风景

@csrf_exempt
def login(request):
    json_data = json.loads(request.body.decode('utf-8'))
    print(json_data)
    return request.body

我现在只有@csrf_exempt,这样我就不用创建视图来获取csrf令牌了。当我发送POST请求时,它工作并打印出我随请求发送的json,但它也打印出这个错误。

Internal Server Error: /login/
Traceback (most recent call last):
  File "C:\Users\Moham\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\Moham\AppData\Local\Programs\Python\Python37\lib\site-packages\django\utils\deprecation.py", line 119, in __call__
    response = self.process_response(request, response)
  File "C:\Users\Moham\AppData\Local\Programs\Python\Python37\lib\site-packages\django\middleware\clickjacking.py", line 26, in process_response
    if response.get('X-Frame-Options') is not None:
AttributeError: 'bytes' object has no attribute 'get'

这让我感到困惑的原因是我没有引用任何名为“bytes”的对象或名为“get”的属性。有人知道这是怎么回事吗?

共有1个答案

娄嘉石
2023-03-14

视图函数应返回httpresponse对象。请尝试以下操作:

from django.http import JsonResponse

@csrf_exempt
def login(request):
    json_data = json.loads(request.body.decode('utf-8'))
    print(json_data)
    return JsonResponse(request.POST)

注意您可以使用request.postrequest.get来获取已解码的请求数据。

 类似资料:
  • 问题内容: 我有以下django模板(将http:// IP / admin / start /分配给一个名为view的假设视图): 是视图中引用的Django模型的。每当单击“开始”提交输入时,我都希望“开始”视图在返回渲染页面之前使用函数中的数据。如何将POST(在本例中为隐藏输入)中发布的信息收集到Python变量中? 问题答案: 另外,你的隐藏字段还需要一个可靠的名称,然后是一个值: 然后

  • 当我尝试向邮递员发送邮件请求时,仍然会出现这个错误。 我可以从我的DRFlocalhost成功地发出相同的帖子请求,但是当我尝试邮递员时,我得到了上面的错误。 我该怎么解决呢? Views.py Serializers.py urls.py 项目urls.py 更新 我根据评论中的错误消息和指南进行了一些更改,现在可以创建用户了。 问题是,在发送表单中的用户凭据后,我在postman中收到了这个错

  • 我是ASP的新手。网我对POST请求有问题。也许我的代码错了,我找不到在哪里! 当我尝试post请求时,Postman会向我发送错误消息: "ExceptionType":"System.网。http://http.不支持的媒体类型异常","StackTrace":"àSystem.网。http://http.HttpContent扩展。ReadAsAsync[T](HttpContent内容,类

  • 问题内容: 我正在使用Django Forms通过POST进行过滤/多面搜索,我想使用Django的paginator类来组织结果。在各个页面之间传递客户端时,如何保留原始请求?换句话说,当我将另一个页面的GET请求传递回我的视图时,似乎丢失了POST数据。我已经看到一些使用AJAX仅刷新页面结果块的建议,但是我想知道是否存在Django本地机制来执行此操作。 问题答案: 如果要在以后的请求中访问

  • <?php $requestBody = array( 'lang' => 'php', 'ver' => 'any' ); $http = HttpRequest::newSession(); $response = $http->post('http://www.baidu.com/', $requestBody);

  • 问题内容: 我不想使用文件,但是只有django才需要发出POST请求。 就像发送请求一样。 问题答案: 结合使用urllib2和urllib中的方法即可解决问题。这是我使用这两种方法发布数据的方式: 是用于打开URL的方法。 将参数转换为百分比编码的字符串。