It is ok and I understand the confusion. web2py is an application from the point of view of a developer. It serves the purpose of developing web applications and it is required for those we applications to run. Yet web2py is not an application from the point of view of the end user.
The end user may see a Blog, a CMS, an E-Store, etc. If they are written with web2py we call them "apps". One web2py can run many "apps" (which you can think of as many we sites). They are all distinct they just share one web server and a common set of libraries. There is only one web2.py but many index.html. All the apps are equivalent in the sense that the are distinct and none of them is privileged. Some times two apps (for example a Blog and CMS) may need to share some functionality that is not provided by the web2py libraries (for example a something that allows users to comment on a Blog entry or a CMS entry). This thing would be a component. Because apps are separated, a component is something that you write once and "copy" into multiple apps. It is a piece of code designed to be re-usable but not shared. Each app must have its own copy of the component so that you can customize it. Different apps may ship with different versions of the component and they should not conflict. A plugin is a subset of an "app". It could be the files which define a component. It could be the files with define the layout of pages. It could be the files which defined the database tables. Any subset of an app is a plugin. This concept allows you to packages the subset and ship it separately from an app. Here is a practical example: - This is one web2py (one web server, one python running) http://web2py.com/demo_admin/default/site - It runs three apps: http://web2py.com/demo_app1/default/index http://web2py.com/demo_app2/default/index http://web2py.com/demo_app3/default/index - Here are two plugins demo_app1 http://web2py.com//demo_admin/default/design/demo_app1#plugins I hope this makes some sense. Massimo On Aug 9, 10:31 am, Furqan Rauf <sfar.fur...@gmail.com> wrote: > just following this conversation, is it normal for a newb, to not understand > what are you guys talking about? and to my understanding you are saying that > web2py is an app itself and all we do create different components and deploy > it. and we assign one component as primary or how does this work i mean lets > say i created a web application that is using that calculator so I will just > install that plugin in my web2py and which ever view I want to use i will > use that load command? > > I am sorry for sounding stupid. > > thanks > > On Tue, Aug 9, 2011 at 9:56 AM, Gour-Gadadhara Dasa <g...@atmarama.net>wrote: > > > > > > > > > > > On Tue, 9 Aug 2011 07:38:50 -0700 (PDT) > > Massimo Di Pierro > > <massimo.dipie...@gmail.com> wrote: > > > > Some plugins define components (plugin_wiki does) and some do not. > > > Interesting... > > > > A component is a set of models/views/controller designed to work > > > together. > > > For example consider a web2py file "controllers/plugin_calculator.py" > > > which contains > > > > def adder(): > > > form = SQLFORM.factory(Field('a','integer'),Field('b','integer')) > > > c = (form.vars.a+form.vars.b) if form.accepts(request) else '...' > > > return DIV(form,'result=',c) > > > > The file is the plugin. The function is the component. It is a > > > component because anywhere in your app you can do: > > > > {{=LOAD('plugin_calculator','adder',ajax=True)}} > > > > and embed the component into any page. > > > Thanks a lot for illustration. > > > > Typically components are more complex but are used and packaged in the > > same > > > way. > > > Ahh...I believe I got it..There are "Component plugins' are plugins that > > define > > components." and that makes difference between 'just plugin'. I'm anxious > > to > > see new version of paper book to buy it asap!! > > > Web2py is so well-designed that I'm really impressed. ;) > > > Sincerely, > > Gour > > > -- > > “In the material world, conceptions of good and bad are > > all mental speculations…” (Sri Caitanya Mahaprabhu) > > >http://atmarama.net| Hlapicina (Croatia) | GPG: 52B5C810 > > -- > *-Furqan Rauf* > *Do you love your creator? Love your fellow-beings first. -Prophet Muhammad > * > *http://www.amway.com/furqanrauf*