Differences between revisions 151 and 303 (spanning 152 versions)
Revision 151 as of 2004-09-27 19:03:20
Size: 6464
Editor: popl-cache-6
Comment: added link for nevow wiki
Revision 303 as of 2007-12-05 16:42:13
Size: 1756
Editor: PaulBoddie
Comment: Added link to intranet building page.
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
#acl All:read
Line 3: Line 4:
See also:
 * [http://www.python.org/sigs/web-sig/ Web SIG] (the Python Web Special Interest Group)
= Web Programming in Python =

This topic guide attempts to cover every aspect of programming Web applications (both clients and servers) using Python.

== Server Programming ==

Topics concerned with writing providing Web applications, doing server-side programming, providing a Web site or pages which use Python in some way:

 * WebFrameworks - for developing server-side Web applications in Python
 * CgiScripts - information on writing CGI scripts/programs in Python when the WebFrameworks seem like too much work or aren't available at your provider
 * WebServers - server solutions written in (or using) Python
 * ContentManagementSystems - solutions specially designed for organising and publishing content
 * WebServices - tools for accessing and providing functionality via APIs over the Web

== Client Programming ==

Topics concerned with accessing Web applications, sites or pages using Python:
Line 6: Line 23:
 * 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]
 * CgiScripts (information on writing CGIs in python)
 * Steve Holden wrote a book on [http://pydish.holdenweb.com/pwp/ Python Web Programming]
 * ContentManagementSystems (Web frameworks can be used to build these)
 * WebServices - tools for accessing and providing functionality via APIs over the Web
Line 13: Line 25:
This topic guide links to the frameworks and templating systems available for Web programming in Python. == Related Links ==
Line 15: Line 27:
==== To Do ==== Related topics of interest:
Line 17: Line 29:
    * 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?
 * WebStandardisation - working towards common solutions and APIs for Python Web programming
 * DatabaseProgramming - guidance on available DatabaseInterfaces and related tools
 * ["Templating"] - generating output, messages and more from Web applications
 * BuildAnIntranet - advice on how one might go about developing and deploying an intranet solution
Line 21: Line 34:
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) == Editorial Note ==
Line 23: Line 36:
== Python-based ==

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

=== Standardisation and Standardisation Proposals ===

    * ["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://www.divmod.org/Home/Projects/Nevow/index.html Nevow] see also the [http://divmod.org/users/wiki.twistd/nevow/moin.cgi Nevow Wiki]
    * [http://pywork.sf.net PyWork]
    * SkunkWeb
    * [http://snakelets.sourceforge.net/ Snakelets]
    * [http://snakeskin-tools.sourceforge.net SnakeSkin]
    * ["Quixote"]
    * TwistedMatrix
    * ["Webware"]
    * ["Zope"]

=== 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]
    * JonsPythonModules
    * [http://myghty.zzzcomputing.com/ Myghty]
    * ["pso"]
    * [http://www.entrian.com/PyMeld PyMeld]
    * [http://www.owlfish.com/software/simpleTAL/ SimpleTAL]
    * ["Spyce"]
    * [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"]
    * ["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.

    * [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()]]
This simplified start page replaces the previous "comprehensive" guide to Web programming. Unless adding a distinct category of Web programming, please add things like new frameworks to the appropriate page - not to this page.

Web Programming in Python

This topic guide attempts to cover every aspect of programming Web applications (both clients and servers) using Python.

Server Programming

Topics concerned with writing providing Web applications, doing server-side programming, providing a Web site or pages which use Python in some way:

  • WebFrameworks - for developing server-side Web applications in Python

  • CgiScripts - information on writing CGI scripts/programs in Python when the WebFrameworks seem like too much work or aren't available at your provider

  • WebServers - server solutions written in (or using) Python

  • ContentManagementSystems - solutions specially designed for organising and publishing content

  • WebServices - tools for accessing and providing functionality via APIs over the Web

Client Programming

Topics concerned with accessing Web applications, sites or pages using Python:

Related topics of interest:

Editorial Note

This simplified start page replaces the previous "comprehensive" guide to Web programming. Unless adding a distinct category of Web programming, please add things like new frameworks to the appropriate page - not to this page.

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

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