|
Size: 1227
Comment:
|
Size: 1405
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 48: | Line 48: |
---- The fastcgi support (available in 1.10) will work for both normal cgi and fastcgi so you can actually support cgi, fastcgi and mod_python all at the same time. -- Matt |
You can run the same Albatross script as a CGI or from mod_python, or even from the command line, with the following trick:
from albatross import SimpleSessionFileApp, SessionFileAppContext
try:
from albatross.apacheapp import Request # This will fail if we are not inside mod_python
cgi = 0
except ImportError:
from albatross.cgiapp import Request
cgi = 1
# Page classes, application/context objects, etc here
app = App()
def handler(req):
'''Called from mod_python - turn a mod_python req into an Albatross Request'''
return do_handler(Request(req))
def do_handler(r):
'''Called with an Albatross Request object'''
return app.run(r)
if cgi:
do_handler(Request())
It's actually even easier than that:
app = App()
if __name__ == '__main__':
# CGI
from albatross import cgiapp
app.run(cgiapp.Request())
else:
# mod_python
from albatross import apacheapp
def handler(req):
return app.run(apacheapp.Request(req))But which do people prefer?
-- Matt
The fastcgi support (available in 1.10) will work for both normal cgi and fastcgi so you can actually support cgi, fastcgi and mod_python all at the same time. -- Matt