我是编程和python的新手。我的任务是构建一个web服务,它接收xml文档,将它们转换为某种数据结构,并发回一些OK(xml)消息。
xml的主要部分示例:
<Formula>
<Left type="Function">
<Name>>Function name</Name>
<Arguments>
<Expression type="IndexPrices">
<Name>SomeIndexPrice</Name>
</Expression>
<Expression Type="Constant">
<Value>9</Value>
</Expression>
<Expression Type="Constant">
<Value>0</Value>
</Expression>
<Expression Type="Constant">
<Value>1</Value>
</Expression>
<Expression Type="Constant">
<Value>1</Value>
</Expression>
</Arguments>
</Left>
<Operator>
<Symbol>*</Symbol>
</Operator>
<Right type="Constant">
<Value>100</Value>
</Right>
</Formula>
我尝试使用Elementtree解析/转换这样的XML文件。步骤:
- 查找IndexPrice
- 初始化IndexPrice(从数据库获取数据)
- 将参数放入函数->获取新的IndexPrice对象
- Get运算符
- 获取运算符的函数,该函数对应于IndexPrice与常数的乘积
这些步骤可以手动完成。每次操作员出现时,都会创建新的价格指数。
我不确定,但我认为不需要WSDL。我想我只需要一个Web服务器,它可以读取XMl->从XMl创建ELementree对象->调用执行上述步骤的函数->发回XMl。
构建一个只读取xml文档并将其转换为Elementree的服务器的最佳方法是什么?并且能够将一些XML文件发送回。哪些python服务器/框架最适合此任务?(我尝试过Ladon,但据我所知,它会自动解析XML,我认为最好手动构建一个解析器。)
我们正在构建的应用程序是一个真实世界的应用程序,我不知道如何使我的部分工作。
Ladon实现了SOAP XML模式(以及其他类似的RPC协议)。此外,如果发送的xml还没有授予这样的模式,并且接口是简单的(即不是rpc),那么在实现SOAP服务器时似乎没有什么用处。
虽然没有"最好"的解决方案,但我发现效果很好的是根据您的需求构建框架。I.e:
- 如果你需要接收http请求,我会从一个http微框架开始,比如
bottle
或flask
- 如果需要发送http请求,请使用
requests
- 如果需要解析XML,请使用
lxml
如果你需要另一个组件/功能,谷歌"python组件",你可能会找到一个很好的框架。