So I am relatively new to the Pyramid scene, so correct me if I am wrong, but this is the conclusion I have come to on this topic. B/c I too struggled for a few days over this.
Resources: First of all, resources were originally called "models," but the name was purposely changed to avoid confusion with SQLAlchemy "models" or with the normal idea of what a MVC "model" is. A "resource" is simply one element in the "resource tree." The entire purpose of the resource tree is to define the structure of your site. A resource isn't necessarily connected to a persistence system, such as an RDBMS, but it definitely can be. It is also important to note that the resource tree is only used when traversal is used as the routing system. Traversal is simply the process by which the router moves down the resource tree according to the url, and assigns the context and view. Context: In traversal, the context is the last resource that is loaded as the router traverses the resource tree, either due to the fact that there are no elements left in the url or that the router has reached the bottom of the tree. View: The view is element of the url that directly follows the context(i.e. /pages/add, if 'pages' is loaded as the context, then 'add' becomes the view). It is essentially the function that does all of the business logic and sends important information to the template. In traversal the context found through the traversal is passed into this view function, whereas in Url Dispatch, the root_factory defined when the view is added to the registry creates an object that is passed into the view as the context(this could be the root of your application or even another resource that you might want to use in the view, it just has to be a class). I don't know about the zope.interfaces question. I always use the 'view_config' decorators. It is the most readable option, and I would think readability would only become more important on a large web application. On Wed, Mar 2, 2011 at 8:20 PM, Chris McDonough <[email protected]> wrote: > On Wed, 2011-03-02 at 17:07 -0800, pspringmeyer wrote: >> I've been able to figure out most everything about Pyramid, but there >> is one thing that I'm not able to "grok" and that is "resources". I'm >> not really understanding the connection between resources, contexts, >> and views. I'm also confused as to why I would want to use >> zope.interfaces with a resource... > > Likely just dont think about it. Use url dispatch instead. Then you > don't need to know anything about contexts, resources, interfaces, none > of it. > >> >> Another question: is it more idiomatic for a large web application to >> imperatively declare views or to use the scan() method + config >> decorators? >> > > .scan() is more convenient so it's used more frequently. > > - C > > > -- > 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. > > -- 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.
