Django中接收并返回xml

2020-05-08  本文已影响0人  DjangoUnchained
介绍
我的依赖包
Django == 2.2.11
djangorestframework == 3.10.3
xmltodict
xmltodict的基本使用
import xmltodict
# xml to dict
xmltodict.parse(xml_data)
# dict to xml
xmltodict.unparse(dict_data)
结合Django返回response
# 自定义xml render
from rest_framework.renderers import BaseRenderer

class XMLRenderer(BaseRenderer):
    """
    Renderer which serializes to XML.
    """

    media_type = 'application/xml'
    format = 'xml'
    charset = 'utf-8'

    def render(self, data, accepted_media_type=None, renderer_context=None):
        """
        Renders `data` into serialized XML.
        """

        return xmltodict.unparse(data)

# view视图中指定render,将dict转化为xml返回
from rest_framework.viewsets import GenericViewSet
from rest_framework.response import Response

class View(GenericViewSet):
    def get(self, request, **kwargs):
        # 这一步指定accepted_renderer十分重要
        self.request.accepted_renderer = XMLRenderer()
        
        return Response(content, status=200, content_type='application/xml;charset=utf8')
上一篇 下一篇

猜你喜欢

热点阅读