如何使用Spyne返回XML文件?

2024-06-09 10:14:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Flask Spyne服务器(web服务),我想返回一个XML文件。在

我想这样做:

  • 我将把一些东西从数据库放到XML中。(已解决
  • 我把XML保存在服务器(webservice)上,当客户要求时,我想把它发送给他。(这是个问题

有办法吗?在

这是我的代码:

class Service(spyne.Service):
    __service_url_path__ = '/soap';
    __in_protocol__ = Soap11(validator='lxml');
    __out_protocol__ = Soap11();

    @spyne.srpc(DateTime, DateTime, _returns="What to put here?")
    def Function(A,B):
        GetXML(A,B)
        s = open("file.xml");
        return s;

if __name__ == '__main__':
    app.run(host = '127.0.0.1');

非常感谢您的帮助。。:)

编辑:

现在这是我的代码:(发送字符串)

^{pr2}$

Tags: 文件代码服务器web数据库flaskdatetime客户
1条回答
网友
1楼 · 发布于 2024-06-09 10:14:39

如果要将其作为文档中的常规字符串返回,则必须将返回类型设置为Unicode。在

如果要将其作为xml文档返回,则必须解析它(etree.parse("Databaze.xml"))并返回生成的ElementTree实例。本例中的返回类型应该是AnyXml。在

另请参见以下示例:

https://github.com/plq/spyne/blob/1f214d102913848cf9d18985d2d75ae1a97375de/examples/response_as_file_dynamic.py

https://github.com/plq/spyne/blob/1f214d102913848cf9d18985d2d75ae1a97375de/examples/response_as_xml_file.py

以字符串形式发送将文档与父上下文隔离。它有点效率低下(例如<字符变成{}),但在其他方面是无害的。在

作为文档发送使您的文档成为SOAP消息的一部分。它的效率更高,但它会从父文档继承命名空间前缀,这可能会对文档造成轻微的更改,也就是说,您输入的内容和返回的内容可能不完全相同(但仍然是等效的)。在

这完全取决于用例。如果有疑问,以字符串形式返回。在

相关问题 更多 >