if response.get(“X-Frame-Options“) is not None:AttributeError: ‘Response‘ object has no attribute

报错提示

Traceback (most recent call last):

venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner     response = get_response(request)

venv\lib\site-packages\django\utils\deprecation.py", line 136, in __call__     response = self.process_response(request, response)

venv\lib\site-packages\django\middleware\clickjacking.py", line 27, in process_response

if response.get("X-Frame-Options") is not None: AttributeError: 'Response' object has no attribute 'get'

原因:

视图函数 def func(request): 应该返回的是一个Django HttpResponse对象。但你直接把一个requests库的 Response 对象(requests请求获得response)直接return 给前端浏览器了。requests库的 Response 对象与Django的 HttpResponse 对象不同,它没有 get 方法来访问 HTTP 头信息

要解决这个问题,你可以将 requests 的响应内容转换为Django的 HttpResponse对象。

import requests
from django.http import JsonResponse

def your_view(request):
    # 通过 requests 发送请求
    response = requests.get('https://example.com/')
    
    # 检查请求是否成功
    if response.status_code == 200:
        # 返回 JsonResponse 对象
        return JsonResponse(response.json())
    else:
        # 返回错误响应
        return JsonResponse({'error': 'Failed to fetch data'}, status=500)

猜你喜欢

转载自blog.csdn.net/bigcarp/article/details/143037930