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