T3
Beyond MVC
Login | Register | Password

Procedures


You can define procedures by editing Configure/Procedures. Here are some example:

Define a private procedure callable by all pages


def add(a,b): return a+b

Define an RSS feed

@rss ## make is accessible as /app/default/rss/news
def news():
    return dict(title='news',
                link=settings.host_url,
                description='bla '*100,
                created_on=self.now,
                entries=[dict(title='news item',
                              link=settings.host_url,
                              description='bla '*100,
                              created_on=self.now)])

Expose a procedure publicly or via JSON or via XMLRPC


@expose ## make is accessible as /app/default/run/date_future/1
@json     ## as json at /app/default/json/date_date_future/1
@xmlrpc ## or as xmlrpc service at /app/default/xmlrpc/date_future
def date_future(days=0):
    import datetime
    return str(datetime.date.today()+datetime.timedelta(int(days)))

In this case

   /app/default/run/date_future/1
   /
app/default/json/date_date_future/1

are the same as

   /app/default/run/date_future?days=1

   /app/default/json/date_date_future/?days=1