In case you don't know, you can also put functions inside model, so
that they are globally available. I think this make your controller
and view have less coupling.

in your model:
def helperFunction(a):
  return a*a

in your controller:
def index():
  return {}
  # much cleaner than return dict(func1=helperFunction,
func2=someOtherFunc, ...)

in your view:
{{=helperFunction(5)}}

On Aug22, 1:48am, Don Lee <sam...@gmail.com> wrote:
> I found what appears to be an easier way.  I should have thought of it
> before.  Everything is an object so:
>
> in my controller:
> =====================================
> def testFunction(a):
>     return a*a
>
> def index():
>     return dict(funct=testFunction)
> =====================================
>
> in my view:
>
> ======================================
> {{=funct(5)}}
> ======================================
>
> results in 25 being printed on the page
>
>
>
> On Tue, Aug 11, 2009 at 10:54 AM, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > There are two types of frameworks push and pull.
>
> > In a push framework (like web2py, Django, Rails) the URL is mapped
> > into a function, which returns data (in the form of a dictionary) and
> > the data is rendered by one view.
>
> > In a pull framework (like Struts and JBoss) the URL is mapped into a
> > view which calls one or more controller functions.
>
> > From your question I assume you have a pull framework in mind. You can
> > mimic a pull framework in web2py in multiple ways. One way is via ajax
> > requests:
>
> > #controller default.py
> > def index(): return dict()
> > def f1(): return response.render('partial_view1.html',dict())
> > def f2(): return response.render('partial_view2.html',dict())
>
> > #view default/index.html
> > {{extend 'alyout.html'}}
> > <div id="f1"></div>
> > <div id="f2"></div>
> > <script>
> > jQuery(document).ready(funciton(){
> >  ajax('{{=URL(f='f1')}}",[],'f1');
> >  ajax('{{=URL(f='f2')}}",[],'f2');
> > })};
> > </script>
>
> > #view partial_view1.html
> > Hello
>
> > #view partial_view2.html
> > World
>
> > Hope it makes sense.
>
> > Massimo
>
> > On Aug 11, 8:50 am, Don <sam...@gmail.com> wrote:
> > > I am new to the MVC paradigm, python, and web2py.  I would like to be
> > > able to:
>
> > > 1. create a controller (done)
> > > 1. define a series of functions (including index)
> > > 2. call any of the function from a single view.
>
> > > Example.  I have a model that consists of three tables.  My default.py
> > > controllers index function returns a dictionary containing rows from a
> > > query about vendor names.  I build a table with the vendor names.  I
> > > also want to build a subtable listing the products available from each
> > > vendor.  For that I would like to define another function that takes
> > > the vendor id and returns products related to that vendor id.  But I
> > > would have to make another view (if I understand correctly).
>
> > > I want all the information to appear in a single view.  Is this
> > > possible?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to