Many thanks Yarko and Massimo, now is all clear !!!

On May 24, 9:29 pm, mdipierro <[email protected]> wrote:
> web2py defines
>
> response._caller = lambda f: f()
>
> this function is in charge of calling the action. You can redefine it
> in the controller or models
>
> def mycaller(f):
>       # before calling action
>       r=f()
>       # after calling action but before calling view
>       if isinstance(r,dict):
>           r=response.render(r)
>       # after calling view before returning response
>       try:
>           return r
>       finally:
>           # after everything
>           pass
>
> response._caller=mycaller
> On May 24, 12:58 pm, Yarko Tymciurak <[email protected]>
> wrote:
>
> > On May 24, 8:22 am, Tex <[email protected]> wrote:
>
> > > Hi,
>
> > > sorry for my poor english...
>
> > > I'm wondering how can I put controller code filters like rails
> > > (before_filter/ after_filter / around_filter).
>
> > > Searching into user group posts I see many responses on activerecord
> > > callbacks (before_save / after_save) wrongly referred to question on
> > > before/after/around filter (controller filter).
>
> > > Now I know that in web2py I can put code into model /db.py) and that
> > > code is execute before globals and before controller code, my
> > > questions are:
>
> > > 1. in rails I writebefore_filteronly for given controllers and given
> > > actions, seems that in web2py if I write the code in db.py it is
> > > executed for all controllers and actions, is there a way to limit that
> > > code execution to given controllers and actions ? (I think that put
> > > too much code into db.py may slow the excution of requests, it'isnt ?)
>
> > > 2. how can I write code execution that emulates after_filter or
> > > around_filter ala Rails ? (example: I want to track remote ip for all
> > > my controller/actions into database...),
>
> > I think this may be more a python question than a web2py question:
> > With python, you want to read up on decorators.    For example:
>
> > @auth.requires_login()
> > def  mycontroller:
> > .....
>
> > can be either  before, around, or after (although you can certainly do
> > before / after in other, simpler ways).
>
> > For example:
>
> > @before_decorator()
> > @around_decorator()
> > def myfunction:
> > ....
>
> > For background, you could start 
> > with:http://docs.python.org/reference/compound_stmts.html#functionhttp://w...
>
> > > Many thanks in advance.
>
> > Regards,
> > - Yarko
>
> > > Tex

Reply via email to