Django REST Framework中requests.get的替代方案是什么?
用DRF直接生成HttpResponse的实现方案
你当前通过requests.get()获取内容后再转换为Django的HttpResponse,其实可以直接使用DRF的Response类完成需求——DRF的Response是DjangoHttpResponse的扩展,支持直接传入请求返回的内容、状态码和内容类型。
修改后的代码
from rest_framework.response import Response import requests def site(request, site_url): response = requests.get(site_url) return Response( data=response.content, status=response.status_code, content_type=response.headers['Content-Type'] )
说明
- DRF的
Response会自动处理响应的序列化和内容协商,但这里直接传入原始二进制内容并指定content_type,和你原来的HttpResponse效果完全一致 - 无需额外转换步骤,直接复用
requests返回的响应属性即可
内容的提问来源于stack exchange,提问作者Dimon Agon
相关产品推荐
相关产品推荐

