繁体   English   中英

从请求正文django访问数据

[英]access data from request body django

我正在使用django v2.2.4 ,需要访问请求正文数据。

这是我的代码:

@api_view(['POST'])
@renderer_classes((JSONRenderer,))
def index(request):
    if request.method == 'POST':
        results= []
        data = JSONParser().parse(request)
        serializer = ScrapeSerializer(data=data)

        if serializer.is_valid():           
            url = request.data.url
            #url = request.POST.get('url')

但是我得到这个错误:

RawPostDataException at /scrape/
You cannot access body after reading from request's data stream

这是请求正文:

{
    "url": "xyz.com"
}

如何访问请求正文?

我发现与此问题相关的SO帖子, 例外:从请求的数据流中读取后无法访问正文

无论如何在DRF中使用request.data而不是request.body

@api_view(['POST'])
@renderer_classes((JSONRenderer,))
def index(request):
    if request.method == 'POST':
        results = []
        serializer = ScrapeSerializer(data=request.data)

        if serializer.is_valid():
            url = request.data["url"]

request.data返回请求正文的解析内容,它将像对象一样dict ,因此点操作( request.data.url在这里不起作用。

要访问POST请求的请求正文,您可以通过url = request.POST.get("url")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM