Fail to correctly route with view_config decorator and GAE

16 views
Skip to first unread message

tankerdude

unread,
Nov 7, 2012, 3:36:31 PM11/7/12
to pylons...@googlegroups.com
This will work...

def working_view(request):

    return {'result' : 'ok' }


def make_app():

    config.add_route('a', '/a', request_method='GET')

    config.add_view(working_view, route_name='a', renderer='json')

That will go to /a with the method but now I try to use @view_config that I'ved used when not running in GAE


def make_app():

    config.add_route('test', '/test', request_method='GET')

    config.scan()


@view_config(route_name='test', renderer='json')

def testMe(request):

    return {'result' : 'hello'}


That, for some reason, will not pick up the /test and 404.  The view callable isn't correctly registered.  Maybe I'm doing something slightly wrong?


Thanks.




Chris McDonough

unread,
Nov 7, 2012, 3:48:15 PM11/7/12
to pylons...@googlegroups.com
I see nothing wrong with it, but you're not really pasting your actual
app, just some pseudocode.

- C

tankerdude

unread,
Nov 7, 2012, 4:27:39 PM11/7/12
to pylons...@googlegroups.com
It's a pretty trivial application to start.
Here's the __init__.py file that goes with it.  It's from the appengine_pyramid scaffold and that I just added a few lines to.  And yes, I can't see it either. I've done all the way down into router.py's handle_request method.

Fails to find a view_callable here:

        # find a view callable

        context_iface = providedBy(context)

        view_callable = adapters.lookup(

            (IViewClassifier, request.request_iface, context_iface),

            IView, name=view_name, default=None)


---- Code Snippet---


from pyramid.config import Configurator

from resources import Root

import views

import pyramid_jinja2

import os

import logging

from pyramid.view import view_config

__here__ = os.path.dirname(os.path.abspath(__file__))



def working_view(request):

    return {'result' : 'ok' }


def make_app():

    """ This function returns a Pyramid WSGI application.

    """

    config = Configurator(root_factory=Root)

    config.add_renderer('.jinja2', pyramid_jinja2.Jinja2Renderer)

    config.add_view(views.my_view,

                    context=Root,

                    renderer='mytemplate.jinja2')

    config.add_route('a', '/a', request_method='GET')

    config.add_route('test', '/test', request_method='GET')

    config.add_view(working_view, route_name='a', renderer='json')

    

    config.add_static_view(name='static',

                           path=os.path.join(__here__, 'static'))

    

    config.scan()

    

    return config.make_wsgi_app()


application = make_app()


@view_config(route_name='test', renderer='json')

def testMe(request):

    return {'result' : 'hello'}


Chris McDonough

unread,
Nov 7, 2012, 4:33:14 PM11/7/12
to pylons...@googlegroups.com
Move testMe function above the "application = make_app()" line. This is
just garden-variety Python behavior.

- c


>
>
>
> On Wednesday, November 7, 2012 12:48:21 PM UTC-8, Chris McDonough wrote:
>
> On 11/07/2012 03:36 PM, tankerdude wrote:
> > This will work...
> >
> > def working_view(request):
> >
> > return{'result': 'ok'}
> >
> >
> > def make_app():
> >
> > config.add_route('a', '/a', request_method='GET')
> >
> > config.add_view(working_view, route_name='a', renderer='json')
> >
> > That will go to /a with the method but now I try to use @view_config
> > that I'ved used when not running in GAE
> >
> >
> > def make_app():
> >
> > config.add_route('test', '/test', request_method='GET')
> >
> > config.scan()
> >
> >
> > @view_config(route_name='test', renderer='json')
> >
> > def testMe(request):
> >
> > return{'result': 'hello'}
> >
> >
> > That, for some reason, will not pick up the /test and 404. The view
> > callable isn't correctly registered. Maybe I'm doing something
> slightly
> > wrong?
>
> I see nothing wrong with it, but you're not really pasting your actual
> app, just some pseudocode.
>
> - C
>
> --
> You received this message because you are subscribed to the Google
> Groups "pylons-devel" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/pylons-devel/-/x-h48vhymSgJ.
> To post to this group, send email to pylons...@googlegroups.com.
> To unsubscribe from this group, send email to
> pylons-devel...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/pylons-devel?hl=en.

tankerdude

unread,
Nov 7, 2012, 4:37:58 PM11/7/12
to pylons...@googlegroups.com
Thanks.  Didn't even see that...
Reply all
Reply to author
Forward
0 new messages