README.rst 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. Paste provides several pieces of "middleware" (or filters) that can be nested
  2. to build web applications. Each piece of middleware uses the WSGI (`PEP 333`_)
  3. interface, and should be compatible with other middleware based on those
  4. interfaces.
  5. .. _PEP 333: http://www.python.org/dev/peps/pep-0333.html
  6. * `Paste project at Bitbucket (source code, bug tracker)
  7. <https://bitbucket.org/ianb/paste/>`_
  8. * `Paste on the Python Cheeseshop (PyPI)
  9. <https://pypi.python.org/pypi/Paste>`_
  10. * `Paste documentation
  11. <http://pythonpaste.org/>`_
  12. See also:
  13. * `PasteDeploy <http://pythonpaste.org/deploy/>`_
  14. * `PasteScript <http://pythonpaste.org/script/>`_
  15. * `WebTest <http://webtest.pythonpaste.org/>`_
  16. * `WebOb <http://docs.webob.org/>`_
  17. Includes these features...
  18. Testing
  19. -------
  20. * A fixture for testing WSGI applications conveniently and in-process,
  21. in ``paste.fixture``
  22. * A fixture for testing command-line applications, also in
  23. ``paste.fixture``
  24. * Check components for WSGI-compliance in ``paste.lint``
  25. Dispatching
  26. -----------
  27. * Chain and cascade WSGI applications (returning the first non-error
  28. response) in ``paste.cascade``
  29. * Dispatch to several WSGI applications based on URL prefixes, in
  30. ``paste.urlmap``
  31. * Allow applications to make subrequests and forward requests
  32. internally, in ``paste.recursive``
  33. Web Application
  34. ---------------
  35. * Run CGI programs as WSGI applications in ``paste.cgiapp``
  36. * Traverse files and load WSGI applications from ``.py`` files (or
  37. static files), in ``paste.urlparser``
  38. * Serve static directories of files, also in ``paste.urlparser``; also
  39. in that module serving from Egg resources using ``pkg_resources``.
  40. Tools
  41. -----
  42. * Catch HTTP-related exceptions (e.g., ``HTTPNotFound``) and turn them
  43. into proper responses in ``paste.httpexceptions``
  44. * Several authentication techniques, including HTTP (Basic and
  45. Digest), signed cookies, and CAS single-signon, in the
  46. ``paste.auth`` package.
  47. * Create sessions in ``paste.session`` and ``paste.flup_session``
  48. * Gzip responses in ``paste.gzip``
  49. * A wide variety of routines for manipulating WSGI requests and
  50. producing responses, in ``paste.request``, ``paste.response`` and
  51. ``paste.wsgilib``
  52. Debugging Filters
  53. -----------------
  54. * Catch (optionally email) errors with extended tracebacks (using
  55. Zope/ZPT conventions) in ``paste.exceptions``
  56. * Catch errors presenting a `cgitb
  57. <http://docs.python.org/2/library/cgitb.html>`_-based
  58. output, in ``paste.cgitb_catcher``.
  59. * Profile each request and append profiling information to the HTML,
  60. in ``paste.debug.profile``
  61. * Capture ``print`` output and present it in the browser for
  62. debugging, in ``paste.debug.prints``
  63. * Validate all HTML output from applications using the `WDG Validator
  64. <http://www.htmlhelp.com/tools/validator/>`_, appending any errors
  65. or warnings to the page, in ``paste.debug.wdg_validator``
  66. Other Tools
  67. -----------
  68. * A file monitor to allow restarting the server when files have been
  69. updated (for automatic restarting when editing code) in
  70. ``paste.reloader``
  71. * A class for generating and traversing URLs, and creating associated
  72. HTML code, in ``paste.url``
  73. The official development repo is at https://bitbucket.org/ianb/paste.
  74. For the latest changes see the `news file
  75. <http://pythonpaste.org/news.html>`_.