[Twisted-web] Use Nevow in conjunction with XMLRPC
    Remi Cool 
    mailinglists at smartology.nl
       
    Tue Nov 15 00:53:39 MST 2005
    
    
  
G'day,
My goal is to create a Twisted server that implements XMLRPC, Nevow and
PHP (for transition of the old webapp).
XMLRPC works again (thanks to Daniel and Matt) ... but I can't get Nevow
working as a child of the httpResource. Or is there a better (Twisted)
way of doing this (without using tap)?
The code:
from formless.annotate import TypedInterface, Integer, String
from nevow import rend, tags, loaders
from formless import webform
class ISimpleMethod(TypedInterface):
    def simple(self,
        name=String(description="Your name."),
        age=Integer(description="Your age.")):
        """Simple
        Please enter your name and age.
        """
class Implementation(object):
    implements(ISimpleMethod)
    def simple(self, name, age):
        print "Hello, %s, who is %s" % (name, age)
class WebForm(rend.Page):
    document = loaders.stan(tags.html[
    tags.body[ tags.h1["Here is the form:"],
                        webform.renderForms('original')]])
class httpResource(resource.Resource):
    implements(resource.IResource)
    def __init__(self, service):
        resource.Resource.__init__(self)
        self.service = service
        self.putChild('RPC2', Example(self.service))
        self.putChild('formtest',
resource.Resource(WebForm(Implementation())))
    def render(self, request):
        self._clientIP = request.getClientIP()
        return resource.Resource.render(self, request)
    def render_GET(self, request):
        """Process HTTP GET Requests."""
        print 'GET: request ->', request
        return '<html><body><h3>Not Implemented</h3></body></html>'
    def getChild(self, path, request):
        """This method handles http calls"""
        print 'getChild path:', path
        print 'getChild request:', request
        if path=="":
            return httpResource(self.service)
        else:
            return httpResource(self.service)
components.registerAdapter(httpResource, IowwService, resource.IResource)
    
    
More information about the Twisted-web
mailing list