Size: 8001
Comment:
|
← Revision 305 as of 2008-11-15 13:59:44 ⇥
Size: 1914
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: |
''(Client-side programming is hardly covered anywhere in this wiki so far :-(, see remark towards the bottom of this page)'' | This topic guide attempts to cover every aspect of programming Web applications (both clients and servers) using Python. |
Line 7: | Line 8: |
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]. Putting it into Wiki format hopefully allows more people to contribute. |
== Server Programming == |
Line 10: | Line 10: |
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. | Topics concerned with writing providing Web applications, doing server-side programming, providing a Web site or pages which use Python in some way: |
Line 12: | 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 14: | 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 16: | 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 18: | Line 22: |
There is an '''ALTERNATIVE''' classification of technologies below the one that follows immediately. The alternative classification section is '''up-to-date as of 2003-02-11''' | * 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 20: | Line 26: |
The Web Framework Shootout (at http://colorstudy.com/docs/shootout.html) also covers several of these frameworks. | == Related Links == |
Line 22: | Line 28: |
==== Multi Protocol Server ==== * ["Crusader"] * TwistedMatrix * ["Zope"] * SkunkWeb * [http://www.nightmare.com/medusa/index.html Medusa] (asyncore, asynchat) * ["4Suite"] |
Related topics of interest: |
Line 30: | Line 30: |
==== HTTP Server and CGI ==== * ["Albatross"] * CherryPy * HpPythonBusinessLibraries * JonsPythonModules * [http://jotweb.tummy.com/ JOTWeb] * ["Karrigell"] * ["maki"] * ModPython * ["MSS"] * [http://pywork.sf.net PyWork] * ["PyWX"] * ["pso"] * ["Quixote"] * ScriptFoundryModules * ["Slither"] * ["Spyce"] * ["Wasp"] * ["Webware"] * [http://coil.homelinux.net:81/ Coil] * [http://www.pasko.net/PyHtmlTable PyHtmlTable: a python html table generator for use in cgis] * [http://www.bel-epa.com/pyapache/ PyApache] |
* 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 53: | Line 35: |
==== Content Management Frameworks ==== * [http://halfdans.net/index.py/apollo?c=show Apollo] * [http://www.plone.org Plone] * [http://ppa.sourceforge.net/#qps QPS] |
== Editorial Note == |
Line 58: | Line 37: |
==== Templating Systems ==== * [http://ahts.sourceforge.net/ AHTS] * [http://www.methods.co.nz/asciidoc/ AsciiDoc] * ["Castalian"] * ["Cheetah"] * CHTL and CGTL (CherryPy) * ClearSilver * CubicTemp * [http://www.twistedmatrix.com/documents/howto/domtemplate DOMTemplate] * ["Draco"] * dtml (["Zope"]) * [http://www.nthwave.net/elements/ Elements] * EmPy [http://pythonjournal.cognizor.com 'in Python Journal 3(1)] * [http://freespace.virgin.net/hamish.sanderson/htmltemplate.html HTMLTemplate] * [http://htmltmpl.sourceforge.net/ htmltmpl] * JonsPythonModules * ["pso"] * PSP in ["Webware"] * PTL (["Quixote"]) * [http://www.entrian.com/PyMeld PyMeld] * Python Server Pages (SkunkWeb) * [http://docutils.sourceforge.net/rst.html reStructuredText] * [http://www.owlfish.com/software/simpleTAL/ SimpleTAL] * [http://jensdiemer.net/Programmieren/VerySimpleTALparser/ VerySimpleTALparser] (german) * STML (SkunkWeb) * TAL/TALES/METAL [http://jotweb.tummy.com/ JOTWeb] * [http://www.twistedmatrix.com/documents/howto/woven Woven] (TwistedMatrix) * [http://www.livinglogic.de/Python/xist/ XIST] * [http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52305 YAPTU][http://pythonjournal.cognizor.com 'in Python Journal 3(1)] * [http://zebra.sourceforge.net/ Zebra] * ZPT (["Zope"]) * Extended XSLT (["4Suite"]) * [http://www.chrisarndt.de/en/software/python/index.html#PyEmb PyEmb] Embed Python code into any kind of text. Can be used as preprocessor or a CGI script for serving template files. ==== Web services ==== * [http://pywebsvcs.sf.net Python Web Services] a SourceForge "meta-project" for Python web services programming ==== 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) = Alternative Classification = == Python-based == === Application Frameworks === * ["Albatross"] * CherryPy * ["Crusader"] * ["Draco"] * [http://jotweb.tummy.com/ JOTWeb] * ["Karrigell"] * [http://pywork.sf.net PyWork] * SkunkWeb * TwistedMatrix * ["Quixote"] * ["Webware"] * ["Zope"] === Servlet-like Engines === * ["Cheetah"] * ["Jaguar"] * [http://pyserv.sourceforge.net PyServ] * [http://snakelets.sourceforge.net/ Snakelets] * [http://coil.homelinux.net:81/ Coil] === Variable Insertion-Replacement Templating Applications (Pre-processors) === * ["Castalian"] * CubicTemp * JonsPythonModules * ["pso"] * ["Spyce"] * [http://www.methods.co.nz/asciidoc/ AsciiDoc] * [http://ahts.sourceforge.net/ AHTS] * [http://archive.dstc.edu.au/aspy/ ASPy] * [http://www.nthwave.net/elements/ Elements] * EmPy * [http://htmltmpl.sourceforge.net/ htmltmpl] * [http://pmz.sourceforge.net Poor Man's Zope] * [http://www.ciobriefings.com/psp/ Python Server Pages] * [http://www.ccraig.org/software/pyhp/ PyHP] * [http://www.embl-heidelberg.de/~chenna/pythonpages/template.html Ramu's Python pages] * [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"] === HTML Shorthand Processors === I don't know what to really call these things. They're not templating systems. They're not variable substitution systems. They ''are'' something different. What? I do not know. I will call them, "HTML Shorthand Processors." -- LionKimbro * ReStructuredText * PyTextile == Python-accessible == === Servlet-like Engines === * [http://www.webmacro.org/ WebMacro] * [http://jakarta.apache.org/velocity/index.html Velocity] === Variable Insertion-Replacement Templating Applications (Pre-processors) === * ClearSilver * [http://java.sun.com/products/jsp Java Server Pages, JSP] * [http://freemarker.org/index.html FreeMarker] (with Jython data binding) = Currently Hardly Considered = == Python-based Web Client Programming == There is probably a huge amount of good stuff available from the people who are working actively with XML-RPC, Biztalk and other approaches to web services. More too from XML writes like [http://uche.ogbuji.net/uche.ogbuji.net/ Uche Ogbuji], who has put much good stuff on IBM's developerworks site, among other things. Sadly nobody has categorised or classified it in the Wiki, so at the moment we have to scratch around. == Object Persistence and Object Relational Layers == See DatabaseProgramming for some guidance on available DatabaseInterfaces and related tools. |
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:
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
Related Links
Related topics of interest:
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
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.