As Mac OS X is a unix based system, the Linux section of NagareInstallation#linux-installation applies, but a few tweaks are needed to setup a fully working nagare environment.
We'll need the following external tools:
Xcode should be available from your Applications Install DVD or can be downloaded from here.
Install instructions can be found here.
Here we have to give some specific options to configure:
cd /tmp wget http://www.stackless.com/binaries/stackless-252-export.tar.bz2 tar jxvf stackless-252-export.tar.bz2 cd stackless-2.5.2* ./configure --enable-stacklessfewerregisters --enable-universalsdk --prefix=<STACKLESS_HOME> make all sudo make install
--enable-stacklessfewerregisters and --enable-universalsdk are the key options here. Also note how Stackless Python is installed in its own <STACKLESS_HOME> directory, in order not to override the Python system.
Install libxml2 and libxslt
As the libxml2 version given with Xcode prevents lxml from installing, we'll use MacPorts to install the right one:
sudo port install libxslt
Finish nagare installation
From now on, you can follow the vanilla install guide, starting with section 2.
In the previous post (blog:dynamic_images) we saw how to use the action() method of the img tag to put dynamic images in a view.
Let's see now how to serve any other dynamic content by raising a HTTPOk exception:
import time from webob.exc import HTTPOk class MyApp(object): def get_text(self, *args): data = time.asctime() e = HTTPOk() e.body = data e.content_type = 'text/plain' raise e from nagare import presentation @presentation.render_for(MyApp) def render(self, h, *args): return h.a('Click me').action(self.get_text)
Nagare catches such webob.exc exceptions; as they inherit from webob.Response they are immediatly returned in the WSGI pipe.