Proper production configuration with Apache2 web server of a Nagare application involves using mod_fastcgi.
Here is a brief mod_fastcgi installation howto based on a Redhat system. This should easily be ported to any other nix plateform.
First of all, you'll need some basic development tools like gcc, gcc-c++, make , autoconf, automake ...
Then you should check you've required headers packages for Apache2 installed:
yum install httpd-devel libtools (for RHEL, centos, fedora based system) up2date install httpd-devel libtools (for older RHEL systems)
OK, now let's install mod_fastcgi:
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz tar xzvf mod_fastcgi-2.4.6.tar.gz cd mod_fastcgi-2.4.6 cp Makefile.AP2 Makefile make top_dir=/usr/lib/httpd make top_dir=/usr/lib/httpd install
In a function, you want to perform some operations on a database using sqlalchemy's session. If one of the operations fails, you want the session to go back to its state when the function was called.
Use a SAVEPOINT transaction:
from nagare import database def my_func(): try: with database.session.begin(nested=True): # let the job be done in a SAVEPOINT transaction # if an exception is raised in this block, session's state is restored ... return True except: return False