Differences between revisions 1 and 145 (spanning 144 versions)
Revision 1 as of 2002-07-12 22:29:49
Size: 1284
Editor: anonymous
Comment: missing edit-log entry for this revision
Revision 145 as of 2004-09-17 13:40:43
Size: 6284
Editor: cache6-popl
Comment: added link for Steve Holden's Python Web Programming book
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This topic guide is a word by word copy of Paul Boddie's
[http://www.boddie.org.uk/python/web_frameworks.html Python Web Frameworks Overview]. Putting it into Wiki format hopefully allows more people to contribute.
#pragma section-numbers off
Line 4: Line 3:
The main purpose of this topic guide is to help in choosing a framework for web programming without having to learn each of them. In addition, information about different PresentationTechnologies is also provided, where appropriate, since this can be a major deciding factor in choosing a framework. See also:
 * [http://www.python.org/sigs/web-sig/ Web SIG] (the Python Web Special Interest Group)
 * WebClientProgramming
 * DatabaseProgramming (guidance on available DatabaseInterfaces and related tools)
 * ["PythonAndJ2EE"] (comparison of various frameworks to J2EE)
 * [http://www.python.org/topics/web/ The old but still useful Web Programming topic guide]
 * Steve Holden wrote a book on [http://pydish.holdenweb.com/pwp/ Python Web Programming]
Line 6: Line 11:
Although comments and clarifications by the framework authors are very much appreciated, adding a standard signature like InTheirOwnWords would help to bring words like 'easy' and 'intuitive' into context. This topic guide links to the frameworks and templating systems available for Web programming in Python.
Line 8: Line 13:
The rather strict format of the main entries should not been seen as a limit. Feel free to add new pages containing examples, direct comparisons etc. ==== To Do ====
Line 10: Line 15:
Known frameworks:     * The templating systems should really get a different page layout, showing examples etc.
    * Describe PHP and Java in the same format as quite a few will want to compare to them anyway
    * Is there any interest in a WebProgrammingShootOut?

Editor: DanielDittmar (this means only that I will adapt the entries to changes in the WebProgrammingTemplate and that I will try to keep the version entries current)

== Python-based ==

The listing is '''up-to-date as of 2003-02-11'''

=== Standardisation and Standardisation Proposals ===

    * [http://www.python.org/pypi?%3Aaction=search&name=WebStack WebStack]
    * [http://www.python.org/peps/pep-0333.html PEP 333: Web Server Gateway Interface] - see also ["WSGIImplementations"]

=== Application Frameworks ===

    * ["Albatross"]
    * ["Aquarium"]
    * CherryPy
    * ["Draco"]
    * [http://jotweb.tummy.com/ JOTWeb]
    * ["Karrigell"]
    * [http://pywork.sf.net PyWork]
    * SkunkWeb
    * [http://snakelets.sourceforge.net/ Snakelets]
    * [http://snakeskin-tools.sourceforge.net SnakeSkin]
    * ["Quixote"]
    * TwistedMatrix
    * [http://www.webtk.org/ WebTK]
    * ["Webware"]
Line 12: Line 47:
    * WebWare
    * SkunkWeb
    * TwistedMatrix
    * ["Quixote"]
    * ["Albatross"]

=== Variable Insertion-Replacement Templating Applications (Pre-processors) ===

There are many, many different HTML templating libraries for Python that provide different feature sets
and syntaxes. These libraries assume that you know how to write HTML, and can figure out how to repeat chunks of HTML in order to produce the

The number of libraries is so great because such libraries are pretty easy to write in Python; [http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52305 this recipe from the Python Cookbook] shows how easy it is.

    * ["Castalian"]
    * ["Cheetah"]
    * CubicTemp
    * [http://www.nthwave.net/elements/ Elements]
    * EmPy
    * [http://freespace.virgin.net/hamish.sanderson/htmltemplate.html HTMLTemplate]
    * [http://htmltmpl.sourceforge.net/ htmltmpl]
Line 18: Line 63:
    * [http://myghty.zzzcomputing.com/ Myghty]
    * ["pso"]
    * [http://www.entrian.com/PyMeld PyMeld]
    * [http://www.owlfish.com/software/simpleTAL/ SimpleTAL]
Line 19: Line 68:
    * CherryPy     * [http://www.execulink.com/~robin1/wasp/readme.html WASP]
    * [http://www.livinglogic.de/Python/xist/ XIST]
   
=== Server-embedded Python ===

    * ModPython for Apache
    * ["PyWX"] for AOLServer

=== Web-based XML processing engines ===
    * ["4Suite"]
Line 21: Line 79:
    * ClearSilver
    * ScriptFoundryModules
    * add new entries by using the code in the WebProgrammingTemplate
Line 25: Line 80:
Is there any interest in a WebProgrammingShootOut? === HTML Shorthand Processors ===
Line 27: Line 82:
Editor: DanielDittmar The libraries in this section implement simpler markup languages
that can be automatically converted to HTML. This lets you avoid having to write HTML
by hand.

    * [http://www.methods.co.nz/asciidoc/ AsciiDoc]
    * PyTextile
    * ReStructuredText
    * [http://txt2tags.sourceforge.net/ txt2tags]

=== HTML Generation class libraries ===
 
   * [http://starship.python.net/crew/friedrich/HTMLgen/html/main.html HTMLgen]
   * [http://dustman.net/andy/python/HyperText/ HyperText]

== Jython-accessible Java toolkits ==

=== Servlet-like Engines ===

   * [http://www.webmacro.org/ WebMacro]
   * [http://jakarta.apache.org/velocity/index.html Velocity]
 
=== Variable Insertion-Replacement Templating Applications (Pre-processors) ===

    * [http://java.sun.com/products/jsp Java Server Pages, JSP]
    * [http://freemarker.org/index.html FreeMarker] (with Jython data binding)

== Python-accessible C toolkits ==

    * ClearSilver (HTML generation)

== Utility modules ==
 
    * [http://www.chrisarndt.de/en/software/python/#auth Auth modules] - a module collection for authentication purposes
    * [http://www.voidspace.org.uk/atlantibots/pythonutils.html#dataenc Dataenc] - allows secure and time limited logins to be encoded into webpages for use with web applications
    * [http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305288 HTTP basic authentication example]

= Related Links =

The Web Framework Shootout at http://colorstudy.com/docs/shootout.html also covers several of these frameworks.

This topic guide started out as a word by word copy of PaulBoddie's
[http://www.boddie.org.uk/python/web_frameworks.html Python Web Frameworks Overview].

OriginalWebProgrammingClassification is an older listing of Python-related web tools, and is now out of date and only of historical interest.

==== Notes on Editing ====

Opinions based on experience are welcome, but framework or templating system authors should sign their comments with InTheirOwnWords to admit to a certain bias.

The rather strict format of the main entries (described in WebProgrammingTemplateHelp) should not been seen as a limit. Feel free to add new pages containing examples, direct comparisons etc.

When adding new entries choose Web``Programming``Template when creating the page.


== Discussion ==

Wait- I don't understand-

Why were BaseHttpServer, DocXmlRpcServer, CgiScripts taken out?

I'd think that on a page on WebProgramming, those things would be listed.

-- LionKimbro [[DateTime(2004-08-02T14:36:38Z)]]

Other things:

 * The reorganisation is presumably to help people find the right framework - things like simple CGI-based APIs might not be cutting edge stuff, but they're potentially very useful if you don't have a "full" hosting account.
 * I didn't really agree with some aspects of the revised classifications. I think the template systems need their own page, and the multiple classifications really need banishing to another page where they'll confuse only the experts.

-- PaulBoddie [[DateTime()]]

See also:

This topic guide links to the frameworks and templating systems available for Web programming in Python.

To Do

  • The templating systems should really get a different page layout, showing examples etc.
  • Describe PHP and Java in the same format as quite a few will want to compare to them anyway
  • Is there any interest in a WebProgrammingShootOut?

Editor: DanielDittmar (this means only that I will adapt the entries to changes in the WebProgrammingTemplate and that I will try to keep the version entries current)

Python-based

The listing is up-to-date as of 2003-02-11

Standardisation and Standardisation Proposals

Application Frameworks

Variable Insertion-Replacement Templating Applications (Pre-processors)

There are many, many different HTML templating libraries for Python that provide different feature sets and syntaxes. These libraries assume that you know how to write HTML, and can figure out how to repeat chunks of HTML in order to produce the

The number of libraries is so great because such libraries are pretty easy to write in Python; [http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52305 this recipe from the Python Cookbook] shows how easy it is.

Server-embedded Python

Web-based XML processing engines

  • ["4Suite"]
  • ["maki"]

HTML Shorthand Processors

The libraries in this section implement simpler markup languages that can be automatically converted to HTML. This lets you avoid having to write HTML by hand.

HTML Generation class libraries

Jython-accessible Java toolkits

Servlet-like Engines

Variable Insertion-Replacement Templating Applications (Pre-processors)

Python-accessible C toolkits

Utility modules

Related Links

The Web Framework Shootout at http://colorstudy.com/docs/shootout.html also covers several of these frameworks.

This topic guide started out as a word by word copy of PaulBoddie's [http://www.boddie.org.uk/python/web_frameworks.html Python Web Frameworks Overview].

OriginalWebProgrammingClassification is an older listing of Python-related web tools, and is now out of date and only of historical interest.

Notes on Editing

Opinions based on experience are welcome, but framework or templating system authors should sign their comments with InTheirOwnWords to admit to a certain bias.

The rather strict format of the main entries (described in WebProgrammingTemplateHelp) should not been seen as a limit. Feel free to add new pages containing examples, direct comparisons etc.

When adding new entries choose WebProgrammingTemplate when creating the page.

Discussion

Wait- I don't understand-

Why were BaseHttpServer, DocXmlRpcServer, CgiScripts taken out?

I'd think that on a page on WebProgramming, those things would be listed.

-- LionKimbro DateTime(2004-08-02T14:36:38Z)

Other things:

  • The reorganisation is presumably to help people find the right framework - things like simple CGI-based APIs might not be cutting edge stuff, but they're potentially very useful if you don't have a "full" hosting account.
  • I didn't really agree with some aspects of the revised classifications. I think the template systems need their own page, and the multiple classifications really need banishing to another page where they'll confuse only the experts.

-- PaulBoddie DateTime()

WebProgramming (last edited 2008-11-15 13:59:44 by localhost)

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