See also:
[https://python.domainunion.de/sigs/web-sig/ Web SIG] (the Python Web Special Interest Group)
DatabaseProgramming (guidance on available DatabaseInterfaces and related tools)
- ["PythonAndJ2EE"] (comparison of various frameworks to J2EE)
[https://python.domainunion.de/topics/web/ The old but still useful Web Programming topic guide]
CgiScripts (information on writing CGIs in python)
Steve Holden wrote a book on [https://pydish.holdenweb.com/pwp/ Python Web Programming]. The book from John Goerzen, [https://www.apress.com/book/bookDisplay.html?bID=363 Foundations of Python Network Programming], can also be useful. Finally, check out the Web Programming chapter in [https://starship.python.net/crew/wesc/cpp/ Core Python Programming] by Wesley Chun.
ContentManagementSystems (Web frameworks can be used to build these)
[https://www.tossed.org/modules.php?name=News&file=article&sid=12 Developing With Mod_Python] - an article on Mod_Python programming with Cheetah Templates and MySQL. Contains code samples.
[https://pyre.third-bit.com/pyweb/index.html PyWebOff: A bakeoff of Python web application frameworks]
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
["WebStack"]
[https://python.domainunion.de/peps/pep-0333.html PEP 333: Web Server Gateway Interface] - see also ["WSGIImplementations"]
Web Servers
TwistedMatrix includes a very scalable web server written in Python.
Application Frameworks
- ["Albatross"]
- ["Aquarium"]
[https://www.stackworks.net/cymbeline/ Cymbeline]
- ["Draco"]
[https://csoki.ki.iif.hu/~vitezg/impostor/ Impostor]
[https://jotweb.tummy.com/ JOTWeb]
- ["Karrigell"]
[https://www.divmod.org/Home/Projects/Nevow/index.html Nevow] ([https://nevow.com Official Site], [https://divmod.org/users/wiki.twistd/nevow/moin.cgi Wiki], [https://srid.bsdnerds.org/hacking/nevowdoc/ Documentation])
[https://pythonpaste.org Paste]
[https://nick.borko.org/pse/works.html Python Servlet Engine]
PythonWebModules see also the [https://www.pythonweb.org Web Modules Homepage]
[https://www.qlime.org QLime]
- ["Quixote"]
[https://snakelets.sourceforge.net/ Snakelets]
- ["Webware"]
- ["Zope"]
Templating Engines
There are many, many different HTML/XML templating libraries for Python that provide different feature sets and syntaxes. These libraries usually assume that you know how to write HTML or XML.
The number of libraries is so great because such libraries are pretty easy to write in Python; [https://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52305 this recipe from the Python Cookbook] shows how easy it is.
- ["Castalian"]
- ["Cheetah"]
[https://www.nthwave.net/elements/ Elements]
[https://freespace.virgin.net/hamish.sanderson/htmltemplate.html HTMLTemplate]
[https://htmltmpl.sourceforge.net/ htmltmpl]
[https://myghty.zzzcomputing.com/ Myghty]
[https://www.divmod.org/Home/Projects/Nevow/index.html Nevow] ([https://nevow.com Official Site], [https://divmod.org/users/wiki.twistd/nevow/moin.cgi Wiki], [https://srid.bsdnerds.org/hacking/nevowdoc/ Documentation])
- ["pso"]
[https://www.owlfish.com/software/simpleTAL/ SimpleTAL]
- ["Spyce"]
[https://www.pytan.com/spytee.html Spytee]
- ["teng"]
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.
[https://txt2tags.sourceforge.net/ txt2tags]
HTML Generation class libraries
[https://starship.python.net/crew/friedrich/HTMLgen/html/main.html HTMLgen]
[https://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/366000 HTMLTags ]
[https://www.divmod.org/Home/Projects/Nevow/index.html Nevow] ([https://nevow.com Official Site], [https://divmod.org/users/wiki.twistd/nevow/moin.cgi Wiki], [https://srid.bsdnerds.org/hacking/nevowdoc/ Documentation]) - (Nevow has XML Templates which can be used to generate XHTML)
Jython-accessible Templating Engines
[https://java.sun.com/products/jsp Java Server Pages, JSP]
[https://freemarker.org/index.html FreeMarker] (with Jython data binding)
[https://nick.borko.org/pse/works.html Python Servlet Engine]
Python-accessible C Templating Engines
ClearSilver (HTML generation)
Utility modules
[https://www.chrisarndt.de/en/software/python/#auth Auth modules] - a module collection for authentication purposes
[https://www.voidspace.org.uk/python/modules.shtml#dataenc Dataenc] - allows secure and time limited logins to be encoded into webpages for use with web applications
[https://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/305288 HTTP basic authentication example]
[https://srid.bsdnerds.org/hacking/wallaby/ Wallaby] - CGI Framework with XMLHttpRequest support. Only source is available now
Related Links
The Web Framework Shootout at https://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 [https://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.
[https://pyre.third-bit.com/pywebblog/ one man's thoughts on writing a single application in multiple different web frameworks]
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
For a set of comparisons of my real-world experiences with a bunch of the web solutions described on this page, check my WebSolutionComparison page. These are NOT impartial and unbiased comparisons; these are my personal experiences from building real web sites. Feel free to add your own comparisons.
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.
I'm afraid we need more fine-grained classification. It is unclear which of these components can be used together with others (say: is [https://www.chrisarndt.de/en/software/python/#auth Auth modules] compatible with CGI or mod_python?
-- Michal J. Gajda DateTime()
If you want web programming to be more accessible, maybe you should avoid titles like "Variable Insertion-Replacement Templating Applications"?
-- FredrikLundh