Differences between revisions 1 and 28 (spanning 27 versions)
Revision 1 as of 2007-10-18 15:54:09
Size: 3562
Editor: PaulBoddie
Comment: Moved components to their own page to prevent "content drift".
Revision 28 as of 2013-08-13 16:20:09
Size: 6288
Editor: sashahart
Comment: correct dead formbuild.org link (now a Japanese treatise on hair dye) to point to FormBuild's PyPI page instead
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
For use with some of the frameworks listed on WebFrameworks, the components/libraries/toolkits on this page often attempt to solve common problems in a way that can work with more than one particular framework; the idea being that you choose the component which does a particular job and it hopefully works with the framework you're developing your application in.
Line 5: Line 4:
== Authorisation Toolkits == For use with some of the frameworks listed on [[WebFrameworks|WebFrameworks]], the components/libraries/toolkits on this page often attempt to solve common problems in a way that can work with more than one particular framework; the idea being that you choose the component which does a particular job and it hopefully works with the framework you're developing your application in.
Line 7: Line 6:
These allow you to add authorisation to your web applications.
Line 9: Line 7:
 * [http://authkit.org/ AuthKit] is a WSGI framework that provides a structure for implementing your own authorisation and authentication system.
 * [http://www.chrisarndt.de/en/software/python/#auth Auth modules] - a module collection for authentication purposes
 * [http://www.voidspace.org.uk/python/modules.shtml#dataenc Dataenc] - allows secure and time limited logins to be encoded into Web pages for use with Web applications
 * [http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305288 HTTP basic authentication example]
== Authorization Toolkits ==


These allow you to add authorization to your web applications.


* [[http://pypi.python.org/pypi/AuthKit|AuthKit]] is a WSGI framework that provides a structure for implementing your own authorization and authentication system. (Note [[http://wiki.pylonshq.com/display/authkitcookbook/Home|AuthKit has been discontinued since 2010-06-04.]])
 * [[http://gthcfoundation.org/wiki/LibAuthKit|LibAuthKit]] - A fork of [[http://pypi.python.org/pypi/AuthKit|AuthKit]] in active development...
 * [[http://docs.repoze.org/who/|repoze.who]] - a WSGI authentication framework implemented as middleware.
 * [[http://what.repoze.org/docs/1.0/|repoze.what]] - a WSGI authorization framework implemented as middleware.
 * [[http://www.chrisarndt.de/en/sof
tware/python/#auth|Auth modules]] - a module collection for authentication purposes (last updated 2002)
 * [[http://www.voidspace.org.uk/python/archive.shtml#dataenc|Dataenc]] - allows secure and time limited logins to be encoded into Web pages for use with Web applications (last updated 2004)
 * [[http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305288|HTTP basic authentication example]] (this is a CGI script)
Line 15: Line 23:
   * [http://formencode.org/ FormEncode] - is a validation and form generation package.
 * [http://formbuild.org/ FormBuild] - FormBuild is a package designed to help with the generation of HTML form components.
 * [http://cheeseshop.python.org/pypi/twForms/ twForms] - Web Widgets for building and validating forms.


 * [[https://bitbucket.org/akorn/wheezy.html|wheezy.html]] is a lightweight HTML widget rendering library with preprocessing features for template engines.
 * [[https://bitbucket.org/akorn/wheezy.validation|wheezy.validation]] is a lightweight model update and validation library.
 * [[http://wtforms.simplecodes.com/|WTForms]] is a forms validation and rendering library for python web development.
 * [[http://formencode.org/|FormEncode]] - is a validation and form generation package.
 * [[https://pypi.python.org/pypi/FormBuild/|FormBuild]] - FormBuild is a package designed to help with the generation of HTML form components.
 * [[http://pypi.python.org/pypi/tw.forms/|tw.forms]] - Web Widgets for building and validating forms.
 * [[http://docs.repoze.org/deform|Deform]] is a featureful framework-agnostic form generation system.
Line 22: Line 36:
A dispatcher takes the requests (i.e. the URL that a user types in) and then provides the response (i.e. the web application that creates the webpage that the user sees).
Line 24: Line 37:
 * [http://routes.groovie.org/ Routes] is a Python re-implementation of the Rails routes system for mapping URL's to Controllers/Actions and generating URL's. Routes makes it easy to create pretty and concise URL's that are RESTful with little effort.
 * [http://lukearno.com/projects/selector/ selector] - provides WSGI middleware for "RESTful" mapping of URL paths to WSGI applications.
 * [http://wsgiarea.pocoo.org/colubrid/ Colubrid] is a WSGI publisher which simplifies Python web developement.If you've ever created a WSGI application without a framework of an request handler you know how hard this can be.
A dispatcher takes the requests (i.e. the URL that a user types in) and then provides the response (i.e. the web application that creates the webpage that the user sees).


* [[https://bitbucket.org/akorn/wheezy.routing|wheezy.routing]] is a lightweight path routing library. It is a simple mapping between URL patterns (as plain simple strings, curly expressions or regular expressions) to a handler that can be anything you like. The mapping can include other mappings and constructed dynamically.
 * [[http://
routes.groovie.org/|Routes]] is a Python re-implementation of the Rails routes system for mapping URL's to Controllers/Actions and generating URL's. Routes makes it easy to create pretty and concise URL's that are RESTful with little effort.
 * [[http://lukearno.com/projects/selector/|selector]] - provides WSGI middleware for "RESTful" mapping of URL paths to WSGI applications.
 * [[http://wsgiarea.pocoo.org/colubrid/|Colubrid]] is a WSGI publisher which simplifies Python web developement.If you've ever created a WSGI application without a framework of an request handler you know how hard this can be.
Line 30: Line 48:
Templating engines allow you to separate your application code from the presentation. Many of these engines can be used alone or within a high-level framework.
Line 32: Line 49:
 * [http://www.myghty.org/ Myghty ] (1.0 Released 2006-01-27) is a Python based templating framework originally based on HTML::Mason
 * [http://www.makotemplates.org/ Mako] is an all-new templating engine which represents the best ideas of Myghty distilled into a completely-rewritten and updated API and syntax.
 * [http://www.thomas-lotze.de/en/software/ophelia/ Ophelia] (0.3 Released 2007-07-06) Generates XHTML pages from TAL templates. This avoids repetitive code, allows the site content to reside in the file system instead of a database, and lets Python scripts make the content dynamic.
 * ["JonsPythonModules"] (1.06 Released 2004-04-11) a set of simple yet powerful multi-threaded object-oriented CGI/FastCGI/mod_python/html-templating modules for Python
 * [http://www.cheetahtemplate.org/ Cheetah] - Cheetah is a Python-powered template engine and code generator. It may be used as a standalone utility or combined with other tools.
 * [http://genshi.edgewall.org/ Genshi] is a Python library that provides an integrated set of components for parsing, generating, and processing HTML, XML or other textual content for output generation on the web.
Templating engines allow you to separate your application code from the presentation. Many of these engines can be used alone or within a high-level framework. A more extensive list can be found on the [[Templating|Templating]] page.


* [[https://bitbucket.org/akorn/wheezy.template|wheezy.template]] is written in pure Python code. It is a lightweight template library. The design goals achived:
  * Compact, Expressive, Clean:
Minimizes the number of keystrokes required to build a template. Enables fast and well read coding.
  * Intuitive, No time to Learn: Basic Python programming skills plus HTML markup. You are productive just from start. Use full power of Python with minimal markup required to denote python statements.
  * Do Not Repeat Yourself: Master layout templates for inheritance; include and import directives for maximum reuse.
  * Blazingly Fast: Maximum rendering performance: ultimate speed and context preprocessor features.

 * [[http://jinja.pocoo.org/2/|Jinja2]] is a small but fast and easy to use stand-alone template engine written in pure python.
 * [[http://chameleon.repoze.org/|Chameleon]] is a fast implementation of both TAL and Genshi syntaxes that compiles templates to python byte-code on first use.
 * [[http://www.clearsilver.net/|ClearSilver]] is a templating framework for Python/C/Perl, this templating system is used in Google Groups & ...
 * [[http://www.myghty.org/|Myghty]
] (1.0 Released 2006-01-27) is a Python based templating framework originally based on HTML::Mason
 * [[http://www.makotemplates.org/|Mako]] is an all-new templating engine which represents the best ideas of Myghty distilled into a completely-rewritten and updated API and syntax.
 * [[http://www.thomas-lotze.de/en/software/ophelia/|Ophelia]] (0.3 Released 2007-07-06) Generates XHTML pages from TAL templates. This avoids repetitive code, allows the site content to reside in the file system instead of a database, and lets Python scripts make the content dynamic.
 * [[JonsPythonModules|JonsPythonModules]] (1.06 Released 2004-04-11) a set of simple yet powerful multi-threaded object-oriented CGI/FastCGI/mod_python/html-templating modules for Python
 * [[http://www.cheetahtemplate.org/|Cheetah]] - Cheetah is a Python-powered template engine and code generator. It may be used as a standalone utility or combined with other tools.
 * [[http://genshi.edgewall.org/|Genshi]] is a Python library that provides an integrated set of components for parsing, generating, and processing HTML, XML or other textual content for output generation on the web.

Web Components

For use with some of the frameworks listed on WebFrameworks, the components/libraries/toolkits on this page often attempt to solve common problems in a way that can work with more than one particular framework; the idea being that you choose the component which does a particular job and it hopefully works with the framework you're developing your application in.

Authorization Toolkits

These allow you to add authorization to your web applications.

Form Handling

  • wheezy.html is a lightweight HTML widget rendering library with preprocessing features for template engines.

  • wheezy.validation is a lightweight model update and validation library.

  • WTForms is a forms validation and rendering library for python web development.

  • FormEncode - is a validation and form generation package.

  • FormBuild - FormBuild is a package designed to help with the generation of HTML form components.

  • tw.forms - Web Widgets for building and validating forms.

  • Deform is a featureful framework-agnostic form generation system.

Request Dispatchers

A dispatcher takes the requests (i.e. the URL that a user types in) and then provides the response (i.e. the web application that creates the webpage that the user sees).

  • wheezy.routing is a lightweight path routing library. It is a simple mapping between URL patterns (as plain simple strings, curly expressions or regular expressions) to a handler that can be anything you like. The mapping can include other mappings and constructed dynamically.

  • Routes is a Python re-implementation of the Rails routes system for mapping URL's to Controllers/Actions and generating URL's. Routes makes it easy to create pretty and concise URL's that are RESTful with little effort.

  • selector - provides WSGI middleware for "RESTful" mapping of URL paths to WSGI applications.

  • Colubrid is a WSGI publisher which simplifies Python web developement.If you've ever created a WSGI application without a framework of an request handler you know how hard this can be.

Templating Engines

Templating engines allow you to separate your application code from the presentation. Many of these engines can be used alone or within a high-level framework. A more extensive list can be found on the Templating page.

  • wheezy.template is written in pure Python code. It is a lightweight template library. The design goals achived:

    • Compact, Expressive, Clean: Minimizes the number of keystrokes required to build a template. Enables fast and well read coding.
    • Intuitive, No time to Learn: Basic Python programming skills plus HTML markup. You are productive just from start. Use full power of Python with minimal markup required to denote python statements.
    • Do Not Repeat Yourself: Master layout templates for inheritance; include and import directives for maximum reuse.
    • Blazingly Fast: Maximum rendering performance: ultimate speed and context preprocessor features.
  • Jinja2 is a small but fast and easy to use stand-alone template engine written in pure python.

  • Chameleon is a fast implementation of both TAL and Genshi syntaxes that compiles templates to python byte-code on first use.

  • ClearSilver is a templating framework for Python/C/Perl, this templating system is used in Google Groups & ...

  • Myghty (1.0 Released 2006-01-27) is a Python based templating framework originally based on HTML::Mason

  • Mako is an all-new templating engine which represents the best ideas of Myghty distilled into a completely-rewritten and updated API and syntax.

  • Ophelia (0.3 Released 2007-07-06) Generates XHTML pages from TAL templates. This avoids repetitive code, allows the site content to reside in the file system instead of a database, and lets Python scripts make the content dynamic.

  • JonsPythonModules (1.06 Released 2004-04-11) a set of simple yet powerful multi-threaded object-oriented CGI/FastCGI/mod_python/html-templating modules for Python

  • Cheetah - Cheetah is a Python-powered template engine and code generator. It may be used as a standalone utility or combined with other tools.

  • Genshi is a Python library that provides an integrated set of components for parsing, generating, and processing HTML, XML or other textual content for output generation on the web.

WebComponents (last edited 2017-02-27 10:29:32 by EtienneRobillard)

Unable to edit the page? See the FrontPage for instructions.