Python Paste: Difference between revisions
→WSGI middleware: added link to unix pipes |
|||
| Line 21: | Line 21: | ||
The [[Web Server Gateway Interface|WSGI]] standard is an interface that allows applications to use Python code to handle HTTP requests. A '''WSGI application''' is passed a Python representation of an HTTP request by an application, and is returned content which will normally eventually be rendered by a web browser. A common use for this is when a [[web server]] serves content created by Python code. | The [[Web Server Gateway Interface|WSGI]] standard is an interface that allows applications to use Python code to handle HTTP requests. A '''WSGI application''' is passed a Python representation of an HTTP request by an application, and is returned content which will normally eventually be rendered by a web browser. A common use for this is when a [[web server]] serves content created by Python code. | ||
There are, however, other uses: '''WSGI middleware''' is Python code that receives a WSGI request and then performs logic based upon this request, before passing the request on to a WSGI application or more WSGI middleware. WSGI middleware appears to an application as a server, and to the server as an application. This is analogous to the function of pipes on Unix systems. Functionality provided by WSGI middleware may include authentication, logging, [[url redirection]], creation of [[sessions]], and compression. | There are, however, other uses: '''WSGI middleware''' is Python code that receives a WSGI request and then performs logic based upon this request, before passing the request on to a WSGI application or more WSGI middleware. WSGI middleware appears to an application as a server, and to the server as an application. This is analogous to the function of [[Pipeline_(Unix)|pipes on Unix systems]]. Functionality provided by WSGI middleware may include authentication, logging, [[url redirection]], creation of [[sessions]], and compression. | ||
== Python paste == | == Python paste == | ||
Revision as of 20:04, 4 May 2010
| Paste | |
| ? | |
| Developer: | Ian Bicking |
|---|---|
| Initial release: | Template:Start date |
| Latest release: | 1.7.2 / ? |
| OS: | Cross-platform |
| Use: | Web application framework |
| License: | MIT License |
| Website: | http://www.pythonpaste.org/ |
Python Paste, often simply called paste, is a set of utilities for web development in Python. Paste has been described as "a framework for web frameworks"[1].
WSGI middleware
To understand the function of paste it is first necessary to understand WSGI middleware.
The WSGI standard is an interface that allows applications to use Python code to handle HTTP requests. A WSGI application is passed a Python representation of an HTTP request by an application, and is returned content which will normally eventually be rendered by a web browser. A common use for this is when a web server serves content created by Python code.
There are, however, other uses: WSGI middleware is Python code that receives a WSGI request and then performs logic based upon this request, before passing the request on to a WSGI application or more WSGI middleware. WSGI middleware appears to an application as a server, and to the server as an application. This is analogous to the function of pipes on Unix systems. Functionality provided by WSGI middleware may include authentication, logging, url redirection, creation of sessions, and compression.
Python paste
The Python Paste package mainly provides Python modules to act as middleware. In addition to middleware, it provides a simple Python webserver that can produce WSGI request and a wrapper used to pass WSGI requests to CGI applications. Paste may be understood as a set of libraries making use of the WSGI standard to provide functionality other than the direct creation of content. This is useful when one is deploying applications written in a Python web framework.
Uses of Paste
Paste is a component used in the Pylons web application framework. Paste has been a long-running open source project, dating from at least 2005. It has grown and has unbundled numerous other utilities from the Paste core. These utilities are part of the Paste project, but form their own packages and have their own version numbers. WebOb is a wrapper around the WSGI environment. Paste Deploy is a system for finding and configuring WSGI applications and servers. Paste Script, WebTest, ScriptType, INITools, Tempita, WaitForIt, WPHP, WSGIFilter, and WSGIProxy are other notable bundles.
See Also
- TurboGears
- Pylons
- Smalltalk Seaside
- Java Servlet
- ISAPI
- FastCGI
- Apache Thrift (from Facebook and Evernote teams)
- Server-side JavaScript
- PHP
- Web application framework
References
External links
- Python Paste: official site
- Ian Bicking page
- Ben Bangert's Google Tech Talk, Sep 13, 2006
- Ian Bicking's Topics of Interest, 4:30-9:30, PyCon 2009