
www.wsgi.org Documentation Release 0.9 Feb 25, 2020 Contents 1 Contents 1 2 Contributing 43 3 Indices and tables 45 Bibliography 47 Index 49 i ii CHAPTER 1 Contents 1.1 What is WSGI? WSGI is the Web Server Gateway Interface. It is a specification that describes how a web server communicates with web applications, and how web applications can be chained together to process one request. WSGI is a Python standard described in detail in PEP 3333. For more, see Learn about WSGI. 1.2 Learn about WSGI • WSGI Tutorial by Clodoaldo Neto • WSGI Explorations in Python by Mike Orr • An Introduction to the Python Web Server Gateway Interface (WSGI) by Titus Brown • A Do-It-Yourself Framework by Ian Bicking • URL Parsing with WSGI by Ian Bicking • WSGI and WSGI Middleware is Easy by Ben Bangert • WSGI - Gateway or Glue by Mark Rees (particularly good as a starting point) • Mix and match Web components with Python WSGI by Uche Ogbuji • ‘Hello World with WSGI’ and WSGI Middleware by Rufus Pollock • Getting started with WSGI by Armin Ronacher • Why so many Python web frameworks? by Joe Gregorio (outlines the creation of a web framework using several WSGI-based tools) • Introducing WSGI: Python’s Secret Web Weapon by James Gardner [xml2006-09] • Introducing WSGI: Python’s Secret Web Weapon, Part Two by James Gardner [xml2006-10] 1 www.wsgi.org Documentation, Release 0.9 • test.wsgi a WSGI test app showing whether your WSGI environment is working (and also outputs some interest- ing informations like Python version, sys.path, WSGI environment, etc.). It can be directly used for mod_wsgi and easily for all other WSGI servers. When started directly from command line, it tries to use wsgiref’s simple server to serve the application. 1.3 Frameworks that run on WSGI This is an alphabetic list of frameworks known to support WSGI. The level and nature of their support sometimes varies, as do the APIs they provide. The descriptions here focus on that, and not the flavor of the frameworks them- selves. If you want to know more, follow the links! Note: Some frameworks really only support using pluggable WSGI servers, which means you get a number of options from HTTP, FastCGI, SCGI, threaded, forking, etc. However, not all such frameworks live well alongside other frameworks in the same process, or may require extra configuration. This is what is meant by noting when a framework supports WSGI servers, vs. a framework that supports a greater number of WSGI compositions, especially the kind of things noted in Middleware and libraries for WSGI Please feel free to expand on the list, the descriptions, or to make corrections. appier Appier is an object-oriented Python web framework built for super fast app development. It’s as lightweight as possible, but not too lightweight. It gives you the power of bigger frameworks, without their complexity. bobo Bobo is a light-weight framework. Its goal is to be easy to use and remember. Bottle Bottle is a fast and simple micro-framework for small web-applications. It offers request dispatching (Routes) with url parameter support, Templates, key/value Databases, a build-in HTTP Server and adapters for many third party WSGI/HTTP-server and template engines. All in a single file and with no dependencies other than the Python Standard Library. CherryPy CherryPy is a pythonic, object-oriented web development framework. Includes support for WSGI servers. CherryPy 3 includes better support for living alongside other WSGI frameworks, applications, and middleware. Django Includes support for WSGI servers Falcon Falcon is a high-performance Python framework for building cloud APIs. It encourages the REST architec- tural style, and tries to do as little as possible while remaining highly effective. Flask Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions. It inherits its high WSGI usage and compliance from Werkzeug. notmm The notmm toolkit is a fork of Django that doesn’t get in your way. Features includes improved WSGI support (Paste), SQLAlchemy, and very few developers! ;-) PoorWSGI Poor WSGI for Python is light WGI connector with uri routing between WSGI server and your applica- tion. It have mod_python compatible request object, which is post to all uri or http state handler. Pycnic Pycnic is a mimimalist JSON API oriented framework for Python 2.7 and 3.x. It provides routing, cookies, and JSON error handling, while maintaining a small codebase. Pyramid Merger of the Pylons and repoze.bfg projects, Pyramid is a minimalist web framework aiming at compos- ability and making developers paying only for what they use. QWeb Another WSGI framework (not sure what the distinguishing features are) repoze.zope2 A module that implements an analogue of the Zope 2 ZPublisher, with some major simplifications and cleanups. Its core mission is to allow publishing existing Zope2 applications in a WSGI environment that externalizes some of the features of “classic” Zope2 into middleware. 2 Chapter 1. Contents www.wsgi.org Documentation, Release 0.9 TurboGears Database-driven app in minutes; inherits its WSGI support from CherryPy. web.py Makes web apps. A small RESTful library. web2py A full stack framework includes its own Database Abstraction Layer (with support for SQLite, MySQL, PostgreSQL, MSSQL, DB2, Informix, Oracle, FireBase, Ingres and Google App Engine), its own template laguage, and a web based IDE. web2py itself is a WSGI app. Not related to web.py. WebCore A nanoframework (only a few hundred lines of code) offering an entry_points-based dependency graph- ing extension system, MVC separation, reusable namespaces, and universal URL dispatch protocol with tight WebOb integration and natural Python semantics. weblayer weblayer is a lightweight, componentised package for writing WSGI applications. Zope 3 The venerable Python web framework, recreated anew in Zope 3, and now a WSGI application. It seems to have some WSGI bits deep inside the publisher, but they aren’t really documented at this time. 1.3.1 Deprecated Systems These systems still exist but got replaced by others or are unmaintained. Clever Harold Clever Harold is an ambitious web framework. It has many features for rapid, reusable, and reliable web application construction. Clever Harold is a complete WSGI framework. To build an application, you pick and choose the servers and components that fit your needs. Colubrid Colubrid is a WSGI publisher which simplifies python web developement. Colubrid is not a framework :-) Although some people like the idea of having found a framework in colubrid. All colubrid does for you is parsing form data / url parameters / cookies and providing a url dispatcher. Colubrid was replaced by Werkzeug. Nettri Nettri is a newcomer of Python World. It is under heavy development. Features includes CMS, Own template Engine, modules and more coming. Paste WebKit An implementation of the Webware servlet API using Paste infrastructure and WSGI. pycoon Pythonic web development framework based on XML pipelines and WSGI Pylons Full-stack Python web development framework combining the very best from the worlds of Ruby, Python and Perl. Pylons has been superseded by pyramid. repoze.bfg A Python WSGI-compliant web framework inspired by Zope, Pylons, and Django with built-in security and templating. repoze.bfg was renamed pyramid and moved under the Pylons project. RhubarbTart A pure-WSGI dispatcher and simple framework, inspired by CherryPy. simpleweb A simple Python WSGI-compliant web framework inspired by Django, TurboGears, and web.py. skunk.web A totally WSGI-ified version of SkunkWeb. Wareweb A rethinking of the Webware/WebKit servlet model, in a pure-WSGI framework. Not used widely. WebStack WebStack is a package which provides a simple, common API for Python Web applications, allowing such applications to run within many different environments with virtually no changes to application code. 1.4 Servers which support WSGI This is an alphabetic list of WSGI servers. In some cases these are WSGI-only systems, in other cases a package includes a server. 1.4. Servers which support WSGI 3 www.wsgi.org Documentation, Release 0.9 Please feel free to expand the list or descriptions. Direct links to documentation on how to use the server is especially appreciated. ajp-wsgi A threaded/forking WSGI server implemented in C (it embeds a Python interpreter to run the actual application). It communicates with the web server via AJP, and is known to work with mod_jk and mod_proxy_ajp. Also available in an SCGI flavor. Aspen A pure-Python web server (using the CherryPy module mentioned next) with three hooks to hang your WSGI on. cherrypy.wsgiserver CherryPy’s “high-speed, production ready, thread pooled, generic WSGI server.” Includes SSL support. Supports Transfer-Encoding: chunked. For details on running foreign (non-CherryPy) applications under the CherryPy WSGI server, see WSGI Support. See also the CherryPy wiki ModWSGI page. chiral.web.httpd A fast HTTP server supporting WSGI, with extensions for Coroutine-based pages with deeply-integrated COMET support. cogen.web.wsgi WSGI server with extensions for coroutine oriented programming. FAPWS Fapws is a WSGI binding between Python and libev. See also: author’s block, GoogleGroup. fcgiapp fcgiapp is a Python wrapper for the C FastCGI SDK. It’s used by PEAK’s FastCGI servers to provide WSGI-over-FastCGI. flup Includes threaded and forking versions of servers that support FastCGI, SCGI, and AJP protocols. gevent-fastcgi WSGI-over-FastCGI server implemented using gevent coroutine-based networking library. Supports FastCGI connection multiplexing. Includes adapters for Django and other frameworks that use Past- eDeploy. Gunicorn WSGI HTTP Server for UNIX, fast clients and nothing else. This is a port of Unicorn to Python and WSGI. ISAPI-WSGI An implementation of WSGI for running as a ISAPI extension under IIS.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages54 Page
-
File Size-