On 9/15/13 1:01 AM, Chung WONG wrote:
thanks for all of your help, I learned a lot from the replies and have a basic understand how traversal works now. However, I have a question about the view lookup in pyramid with traversal. For example, in Paul's tutorial<http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/humans/resources/step04/index.html> , in the views.py, there is an view named *add_folder*. It can be access via* *http://127.0.0.1:8080/add_folder However, as the context is Folder, it can also be accessed via http://127.0.0.1:8080/folder1/add_folder That said, if I add resource and make a link like http://127.0.0.1:8080/x/y/z/a/b/c/folder1/add_folder<http://127.0.0.1:8080/folder1/add_folder>, the 3 URLs mentioned are getting the same view. Is it normal in Traversal? As I know this will not happen in URL Dispatch.
Indeed, that is not just normal in traversal, it is in fact the whole point of traversal. :)
Routes thinks about patterns (sort of like regular expressions.) Traversal thinks about objects and operations. "add_folder" is the same add_folder no matter which Folder instance you call it on.
--Paul
Thanks again for the great help On Thursday, September 5, 2013 10:18:05 AM UTC+10, Chung WONG wrote:Hi all, I have read all the docs available on pyramid's website, however I still don't really understand how to get a basic traversal app working. The hello world example is good but I am not able to extend it. The ZODB wiki is good too but it is a bit too much information to me with auth and zodb. What I am trying to do is to add some views to the hello world example but my understanding is very vague. I created a starter scaffolding. # __init__.py from pyramid.config import Configurator *from pyramid.response import Response* *class Resource(dict):* * pass* * * *def get_root(request):* * return Resource({'a':Resource({'b':Resource({'c':Resource({'c':Resource()})})})}) * * * *def hello_world_of_resources(context,request):* * output="Here's a resource and its children: %s" % content* * return Response(output)* def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ config = Configurator(settings=settings,root_factory=get_root) config.add_static_view('static', 'static', cache_max_age=3600) * config.add_view(hello_world_of_resources,context=Resource)* config.scan() return config.make_wsgi_app() #views.py from pyramid.view import view_config *from pyramid.response import Response* *@view_config()* *def my_login(request):* * return Response('login')* * * *@view_config()* *def my_logout(request):* * return Response('logout')* I have no clue how to link the resource with the views. Did I miss something import in the docs or are there any very basic/bare minimum traversal only tutorial? Thanks in advance.
-- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/groups/opt_out.
