109 lines
3.2 KiB
ReStructuredText
109 lines
3.2 KiB
ReStructuredText
Paste provides several pieces of "middleware" (or filters) that can be nested
|
|
to build web applications. Each piece of middleware uses the WSGI (`PEP 333`_)
|
|
interface, and should be compatible with other middleware based on those
|
|
interfaces.
|
|
|
|
.. _PEP 333: http://www.python.org/dev/peps/pep-0333.html
|
|
|
|
* `Paste project at Bitbucket (source code, bug tracker)
|
|
<https://bitbucket.org/ianb/paste/>`_
|
|
* `Paste on the Python Cheeseshop (PyPI)
|
|
<https://pypi.python.org/pypi/Paste>`_
|
|
* `Paste documentation
|
|
<http://pythonpaste.org/>`_
|
|
|
|
See also:
|
|
|
|
* `PasteDeploy <http://pythonpaste.org/deploy/>`_
|
|
* `PasteScript <http://pythonpaste.org/script/>`_
|
|
* `WebTest <http://webtest.pythonpaste.org/>`_
|
|
* `WebOb <http://docs.webob.org/>`_
|
|
|
|
Includes these features...
|
|
|
|
Testing
|
|
-------
|
|
|
|
* A fixture for testing WSGI applications conveniently and in-process,
|
|
in ``paste.fixture``
|
|
|
|
* A fixture for testing command-line applications, also in
|
|
``paste.fixture``
|
|
|
|
* Check components for WSGI-compliance in ``paste.lint``
|
|
|
|
Dispatching
|
|
-----------
|
|
|
|
* Chain and cascade WSGI applications (returning the first non-error
|
|
response) in ``paste.cascade``
|
|
|
|
* Dispatch to several WSGI applications based on URL prefixes, in
|
|
``paste.urlmap``
|
|
|
|
* Allow applications to make subrequests and forward requests
|
|
internally, in ``paste.recursive``
|
|
|
|
Web Application
|
|
---------------
|
|
|
|
* Run CGI programs as WSGI applications in ``paste.cgiapp``
|
|
|
|
* Traverse files and load WSGI applications from ``.py`` files (or
|
|
static files), in ``paste.urlparser``
|
|
|
|
* Serve static directories of files, also in ``paste.urlparser``; also
|
|
in that module serving from Egg resources using ``pkg_resources``.
|
|
|
|
Tools
|
|
-----
|
|
|
|
* Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them
|
|
into proper responses in ``paste.httpexceptions``
|
|
|
|
* Several authentication techniques, including HTTP (Basic and
|
|
Digest), signed cookies, and CAS single-signon, in the
|
|
``paste.auth`` package.
|
|
|
|
* Create sessions in ``paste.session`` and ``paste.flup_session``
|
|
|
|
* Gzip responses in ``paste.gzip``
|
|
|
|
* A wide variety of routines for manipulating WSGI requests and
|
|
producing responses, in ``paste.request``, ``paste.response`` and
|
|
``paste.wsgilib``
|
|
|
|
Debugging Filters
|
|
-----------------
|
|
|
|
* Catch (optionally email) errors with extended tracebacks (using
|
|
Zope/ZPT conventions) in ``paste.exceptions``
|
|
|
|
* Catch errors presenting a `cgitb
|
|
<http://docs.python.org/2/library/cgitb.html>`_-based
|
|
output, in ``paste.cgitb_catcher``.
|
|
|
|
* Profile each request and append profiling information to the HTML,
|
|
in ``paste.debug.profile``
|
|
|
|
* Capture ``print`` output and present it in the browser for
|
|
debugging, in ``paste.debug.prints``
|
|
|
|
* Validate all HTML output from applications using the `WDG Validator
|
|
<http://www.htmlhelp.com/tools/validator/>`_, appending any errors
|
|
or warnings to the page, in ``paste.debug.wdg_validator``
|
|
|
|
Other Tools
|
|
-----------
|
|
|
|
* A file monitor to allow restarting the server when files have been
|
|
updated (for automatic restarting when editing code) in
|
|
``paste.reloader``
|
|
|
|
* A class for generating and traversing URLs, and creating associated
|
|
HTML code, in ``paste.url``
|
|
|
|
The official development repo is at https://bitbucket.org/ianb/paste.
|
|
|
|
For the latest changes see the `news file
|
|
<http://pythonpaste.org/news.html>`_.
|