|
Size: 865
Comment:
|
Size: 1405
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| You can run the same Albatross script as a CGI or from mod_python with the following trick: | You can run the same Albatross script as a CGI or from mod_python, or even from the command line, with the following trick: |
| Line 3: | Line 3: |
| from albatross import SimpleSessionFileApp, SessionFileAppContext | |
| Line 4: | Line 5: |
| os.environ['GATEWAY_INTERFACE'] | from albatross.apacheapp import Request # This will fail if we are not inside mod_python cgi = 0 except ImportError: from albatross.cgiapp import Request |
| Line 6: | Line 10: |
| except: cgi = 0 from albatross import SimpleSessionFileApp, SessionFileAppContext if cgi: from albatross.cgiapp import Request else: from albatross.apacheapp import Request |
|
| Line 31: | Line 27: |
| ---- 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 |
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