我刚刚启动了应该使用pythonic简单web服务器(我只需要一个“配置”页面)的项目,用于在真正的多个字段(超过150个)中从用户获取数据,然后转换所有这些数据(字段+数据)到xml文件并将其发送到另一个python模块。所以问题是 - 处理这个问题的简单方法是什么? 我发现了cherryPy(作为webserver)和Genshi(作为xml解析器),但对于我来说,如何将它结合起来并不是很明显(因为我理解Genshi为发布提供模板(甚至是xml),但是如何获取(转换)数据XML)。 Ive red cherryPy和Genshi教程,但它与我真正需要的有点不同,而且我现在在python(特别是web)中并不那么强大,以获得正确的方向。 如果您能向我展示任何类似于理解这个概念的例子,那就太棒了!
抱歉我的英文!
提前致谢。
答案 0 :(得分:0)
Python带有方便的xml.etree
,您不需要额外的依赖项来输出简单的XML。这是一个例子。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import xml.etree.cElementTree as etree
import cherrypy
config = {
'global' : {
'server.socket_host' : '127.0.0.1',
'server.socket_port' : 8080,
'server.thread_pool' : 8
}
}
class App:
@cherrypy.expose
def index(self):
return '''<!DOCTYPE html>
<html>
<body>
<form action="/getxml" method="post">
<input type="text" name="key1" placeholder="Key 1" /><br/>
<input type="text" name="key2" placeholder="Key 2" /><br/>
<input type="text" name="key3" placeholder="Key 3" /><br/>
<select name="key4">
<option value="1">Value 1</option>
<option value="2">Value 2</option>
<option value="3">Value 3</option>
<option value="4">Value 4</option>
</select><br/>
<button type="submit">Get XML</button>
</form>
</body>
</html>
'''
@cherrypy.expose
def getxml(self, **kwargs):
root = etree.Element('form')
for k, v in kwargs.items():
etree.SubElement(root, k).text = v
cherrypy.response.headers['content-type'] = 'text/xml'
return etree.tostring(root, encoding = 'utf-8')
if __name__ == '__main__':
cherrypy.quickstart(App(), '/', config)