bundled/flask/docs/deploying/cgi.rst @ 9030dc9517cf
web: add basic tests This patch adds a new test module `test_web` to automate testing of web requests. For now the tests are rather simple and only check for expected status codes. To set up the flask app within the tests, it has to be configured properly. This is the reason why the app configuration part in `web.py` has been moved into an own function - now it may also be used by the test module.
| author | Oben Sonne <obensonne@googlemail.com> |
|---|---|
| date | Mon, 02 Jul 2012 22:32:48 +0200 |
| parents | f33efe14bff1 |
| children | (none) |
CGI === If all other deployment methods do not work, CGI will work for sure. CGI is supported by all major servers but usually has a less-than-optimal performance. This is also the way you can use a Flask application on Google's `App Engine`_, there however the execution does happen in a CGI-like environment. The application's performance is unaffected because of that. .. admonition:: Watch Out Please make sure in advance that your ``app.run()`` call you might have in your application file, is inside an ``if __name__ == '__main__':`` or moved to a separate file. Just make sure it's not called because this will always start a local WSGI server which we do not want if we deploy that application to CGI / app engine. .. _App Engine: http://code.google.com/appengine/ Creating a `.cgi` file ---------------------- First you need to create the CGI application file. Let's call it `yourapplication.cgi`:: #!/usr/bin/python from wsgiref.handlers import CGIHandler from yourapplication import app CGIHandler().run(app) Server Setup ------------ Usually there are two ways to configure the server. Either just copy the `.cgi` into a `cgi-bin` (and use `mod_rewrite` or something similar to rewrite the URL) or let the server point to the file directly. In Apache for example you can put a like like this into the config: .. sourcecode:: apache ScriptAlias /app /path/to/the/application.cgi For more information consult the documentation of your webserver.