Differences between revisions 122 and 305 (spanning 183 versions)
Revision 122 as of 2004-07-29 13:30:25
Size: 4309
Comment:
Revision 305 as of 2008-11-15 13:59:44
Size: 1914
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
#acl All:read
Line 3: Line 4:
'''or, more aptly put, Web ''Server'' Programming''' = Web Programming in Python =
Line 5: Line 6:
See also:
 * WebClientProgramming
 * DatabaseProgramming (guidance on available DatabaseInterfaces and related tools)
 * ["PythonAndJ2EE"] (comparison of various frameworks to J2EE)
This topic guide attempts to cover every aspect of programming Web applications (both clients and servers) using Python.
Line 10: Line 8:
The main purpose of this topic guide is to help in choosing between the plethora of frameworks and templating systems 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. == Server Programming ==
Line 12: Line 10:
==== Notes on Editing ==== Topics concerned with writing providing Web applications, doing server-side programming, providing a Web site or pages which use Python in some way:
Line 14: Line 12:
Opinions based on experience are welcome, but framework or templating system authors should sign their comments with InTheirOwnWords to admit to a certain bias.  * 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
Line 16: Line 18:
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. == Client Programming ==
Line 18: Line 20:
When adding new entries choose Web``Programming``Template when creating the page. Topics concerned with accessing Web applications, sites or pages using Python:
Line 20: Line 22:
==== Other Guides ====  * WebBrowserProgramming - interfacing with existing browsers and browser technologies
 * WebClientProgramming - writing clients, typically at a lower level than a full Web browser
 * WebServices - tools for accessing and providing functionality via APIs over the Web
Line 22: Line 26:
The listing is '''up-to-date as of 2003-02-11''' == Related Links ==
Line 24: Line 28:
The Web Framework Shootout (at http://colorstudy.com/docs/shootout.html) also covers several of these frameworks. Related topics of interest:
Line 26: Line 30:
==== 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?
 * 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 31: Line 35:
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 33: Line 37:
= Alternative Classification =

== Python-based ==

=== Application Frameworks ===

    * ["Albatross"]
    * CherryPy
    * ["Draco"]
    * [http://jotweb.tummy.com/ JOTWeb]
    * ["Karrigell"]
    * [http://pywork.sf.net PyWork]
    * SkunkWeb
    * [http://snakelets.sourceforge.net/ Snakelets]
    * ["Quixote"]
    * TwistedMatrix
    * [http://www.webtk.org/ WebTK]
    * ["Webware"]
    * ["Zope"]
    * [http://snakelets.sourceforge.net/ Snakelets]

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

    * ["Castalian"]
    * ["Cheetah"]
    * CubicTemp
    * JonsPythonModules
    * ["pso"]
    * ["Spyce"]

    * [http://www.methods.co.nz/asciidoc/ AsciiDoc]
    * [http://www.nthwave.net/elements/ Elements]
    * EmPy
    * [http://htmltmpl.sourceforge.net/ htmltmpl]
    * [http://www.entrian.com/PyMeld PyMeld]
    * [http://www.owlfish.com/software/simpleTAL/ SimpleTAL]
    * [http://www.execulink.com/~robin1/wasp/readme.html WASP]
    * [http://www.livinglogic.de/Python/xist/ XIST]
    * [http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52305 YAPTU]

=== Embedding the Python Interpreter into HTTP (Web) Servers ===
    * ModPython for Apache
    * ["PyWX"] for AOLServer
    * [http://adullact.net/projects/pythml/ PythMl]

=== 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]
    * ReStructuredText
    * PyTextile

== 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 ==

=== HTML Templating ===

    * ClearSilver

== Object Persistence and Object Relational Layers ==

See

= Related Links =

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. Now only of historical interest.
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.