Django 请求 XML 文件

1 投票
1 回答
2527 浏览
提问于 2025-04-18 14:26

你好,我想把一个XML文件从一个页面传到另一个页面。

第一个页面(在这个页面我发送XML文件):

def view1(request):
    xml_file = open("/path/to/respuesta_error.xml", "rb").read()
    r = urllib2.Request("http://localhost:8000/ingram/response/", data=xml_file, headers={'Content-Type': 'text/xml'})
    u = urllib2.urlopen(r)
    response = u.read()
    return HttpResponse(response)

第二个页面(在这个页面我应该读取XML文件):

@csrf_exempt
# https://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element
def view2(request):
    xml_file = open("/path/to/respuesta_error.xml", "rb") # <-- How can I read the request XML?
    text = xml_file.read()
    text = strip_ns(text)

    file_new = open("ultima_respuesta.xml", "w")
    file_new.write(texto)
    file_new.close()

    return HttpResponse("test")

在第二个页面,我读取了文件 /path/to/respuesta_error.xml,但我不知道该怎么做才能读取从第一个页面通过POST发送过来的XML文件。

我试过用request和request.body,但都不行。

谢谢!

1 个回答

1

我发现请求的主体(request.body)里包含了一个字符串格式的XML,所以view2应该像这样:

@csrf_exempt
# https://docs.python.org/2/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element
def view2(request):
    text = strip_ns(request.body)

    file_new = open("ultima_respuesta.xml", "w")
    file_new.write(texto)
    file_new.close()

    return HttpResponse("test")

撰写回答