[Twisted-web] Web2 Script.py seems to be broken
James Y Knight
foom at fuhm.net
Thu Feb 9 11:52:38 MST 2006
> from twisted.application import strports, service
> from twisted.web2 import static, server, http, wsgi, resource
>
> import sys
> sys.path.append("./myproject")
> from django.core.handlers.wsgi import WSGIHandler
> import os
> os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
>
> class toplevel(wsgi.WSGIResource):
>
>
> def child_media(self, ctx):
> return static.File("./myproject/media")
>
>
> root = toplevel(WSGIHandler())
> application = service.Application("web")
> site = server.Site(root)
> s = strports.service('tcp:8000', http.HTTPFactory(site))
> s.setServiceParent(application)
That won't work -- what you want is to nest the resources rather than
subclass them. Something like this resource should do you (untested,
wrote in email client). It says: if the path starts with media,
return the static File and pass it the remaining pieces of the path,
otherwise pass the entire path onto wsgi for its processing.
class toplevel(object):
implements(IResource)
def __init__(self):
self.wsgi = wsgi.WSGIResource(WSGIHandler())
self.media = static.File("./myproject/media"
def locateChild(self, req, segs):
if segs[0] == 'media':
return self.media, segs[1:]
return self.wsgi, segs
def renderHTTP(self, req):
return self.wsgi
James
More information about the Twisted-web
mailing list