2012-09-24 8 views
1

필자는 실제로 파이썬 간단한 웹 서버 (필자는 하나의 "설정"페이지 만 필요함)를 사용하여 실제로 곱한 필드에서 사용자로부터 데이터를 가져 오는 프로젝트를 시작했습니다. 150) 다음이 모든 데이터 (field + data)를 xml 파일로 변환하고 다른 python 모듈로 보냅니다. 그래서 질문은 - 이것을 다루는 간단한 방법은 무엇입니까? cherryPy (웹 서버로) 및 Genshi (xml 파서로)를 찾았지만 이것을 결합하는 방법은 밝혀지지 않았습니다. (Genshi가 출판을위한 템플릿 (심지어 xml)을 제공한다는 것을 이해했기 때문에 데이터를 얻는 방법 xml로). Ive red cherryPy와 Genshi 튜토리얼이지만 실제로 필요한 것이 조금 다르다. 그리고 파이썬 (특히 웹)에서 지금 당장 올바른 방향을 찾으려하지 않는다. 개념을 이해하는 데 도움이 될만한 좋은 예를 보여줄 수 있다면 좋을 것입니다.파이썬 서버의 데이터 입력에서 XML을 처리하는 간단한 방법

영어로 죄송합니다. 사전에

감사합니다.

답변

0

파이썬은 편리한 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)