On Jun 25, 7:20 pm, Mike Orr <[email protected]> wrote:
> On Thu, Jun 25, 2009 at 2:23 PM, Thomas G. Willis<[email protected]> wrote:
>
> > On Jun 25, 12:19 pm, Marius Gedminas <[email protected]> wrote:
> >> On Thu, Jun 25, 2009 at 05:22:24AM -0700, Thomas G. Willis wrote:
> >> > ok, I've been trying to figure this out for a while, and I haven't
> >> > quite cracked this nut.
>
> >> > What I'm trying to do is understand the mechanics of mounting a pylons
> >> > app as anothers controller. To get this sort of effect...
>
> >> >http://myapp:5000/home/index<------site container
> >> > and
> >> >http://myapp:5000/registration/register/index<---- another pylons app
>
> >> > in my registration.py controller of my container app I have...
>
> >> > from paste.deploy import loadapp
> >> > RegistrationController = loadapp("config:/path/to/config.ini")
>
> >> > in my routing.py of my container app I have...
>
> >> > map.connect("registration/{path_info:.*}",controller="registration")
>
> >> I don't think you can chain routes this way.
>
> > Would  you mind elaborating? It seems it should work. Doesn't routes
> > just pick up the SCRIPT_NAME and PATH_INFO from environ? And isn't the
> > purpose of the above map.connect to set those 2 variables
> > appropriately? What's the magic I'm missing?
>
> It should be OK.  'path_info' is a magic variable that sets the real
> SCRIPT_NAME and PATH_INFO to the subapplication, as well as setting
> the routing variable.
>
> I wonder if you have the same controller_scan problem I mentioned in
> an earlier message today.  If so, instantiate your route map with a
> list of controller names you think should be valid, and see if that
> clears up the problem.
>
>     def my_controllers():
>         return ["registration"]
>     map = routes.Mapper(controller_scan=my_controllers)
>
> Also turn on full debug logging.  (Set the root logger to debug, or a
> logger for routes.middleware.)
>
> I would think that a 404 indicates a routing problem.  A missing
> controller module would raise ImportError, and a malformed controller
> would raise something else.  Make sure you're in development mode.
> (In production mode, missing controllers are disguised as 404s I
> think.)
>
> I hope that nested Pylons applications work because I want to split up
> one of my applications this summer.
>
> Be sure to set full_stack=False in the myapp.middleware.make_app()
> call.  I think you may also want to adjust the 'if full_stack:' in the
> function because the default doesn't look quite right to me.  I think
> you want the outer app to handle sessions and errors but the inner app
> to have its own routing, no?
>
> Because of the 'full_stack' argument, it may not be appropriate to
> instantiate the inner app via paste.deploy.  You may have better luck
> calling make_app directly, and creating the desired configuration
> variables in the pseudo-controller module.  That is, assuming you're
> not passing a lot of variables through from the top-level
> configuration.
>
> You can also set the WSGI application to __controller__ rather than
> RegistrationController. Or you may want a custom __controller__
> function that instantiates the application with a particular
> configuration and returns it.
>
> --
> Mike Orr <[email protected]>


OK lots of stuff to learn and try thanks for the suggestions. If I
figure out anything I'll share.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to