8275
Comment:
|
8406
Tidied up the headings and added WebStack references.
|
Deletions are marked like this. | Additions are marked like this. |
Line 10: | Line 10: |
Another topic guide, derived from PaulBoddie's [https://www.boddie.org.uk/python/web_modules_enterprise.html Python Frameworks and J2EE Standards] document is now available, too: ["PythonAndJ2EE"]. |
|
Line 12: | Line 14: |
Another topic guide, derived from PaulBoddie's [https://www.boddie.org.uk/python/web_modules_enterprise.html Python Frameworks and J2EE Standards] document is now available, too: ["PythonAndJ2EE"]. | ==== Notes on Editing ==== |
Line 20: | Line 22: |
==== Other Guides ==== |
|
Line 24: | Line 28: |
==== Multi Protocol Server ==== | = Original Classification = === Common Frameworks and APIs === * WebStack === Multi Protocol Server === |
Line 32: | Line 41: |
==== HTTP Server and CGI ==== | === HTTP Server and CGI === |
Line 56: | Line 65: |
==== Content Management Frameworks ==== | === Content Management Frameworks === |
Line 61: | Line 70: |
==== Templating Systems ==== | === Templating Systems === |
Line 95: | Line 104: |
==== Web services ==== | === Web services === |
or, more aptly put, Web Server Programming
(Client-side programming is hardly covered anywhere in this wiki so far :-(, see remark towards the bottom of this page)
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]. Putting it into Wiki format hopefully allows more people to contribute.
Another topic guide, derived from PaulBoddie's [https://www.boddie.org.uk/python/web_modules_enterprise.html Python Frameworks and J2EE Standards] document is now available, too: ["PythonAndJ2EE"].
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.
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.
Other Guides
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
The Web Framework Shootout (at https://colorstudy.com/docs/shootout.html) also covers several of these frameworks.
Original Classification
Common Frameworks and APIs
Multi Protocol Server
- ["Crusader"]
- ["Zope"]
[https://www.nightmare.com/medusa/index.html Medusa] (asyncore, asynchat)
- ["4Suite"]
HTTP Server and CGI
- ["Albatross"]
[https://jotweb.tummy.com/ JOTWeb]
- ["Karrigell"]
- ["maki"]
- ["MSS"]
[https://www.pasko.net/PyHtmlTable PyHtmlTable: a python html table generator for use in cgis]
- ["PyWX"]
- ["pso"]
- ["Quixote"]
- ["Slither"]
- ["Spyce"]
- ["Wasp"]
[https://www.webtk.org/ WebTK]
- ["Webware"]
Content Management Frameworks
[https://www.plone.org Plone]
Templating Systems
- ["Castalian"]
- ["Cheetah"]
CHTL and CGTL (CherryPy)
[https://www.twistedmatrix.com/documents/howto/domtemplate DOMTemplate]
- ["Draco"]
- dtml (["Zope"])
[https://www.nthwave.net/elements/ Elements]
EmPy [https://pythonjournal.cognizor.com 'in Python Journal 3(1)]
[https://freespace.virgin.net/hamish.sanderson/htmltemplate.html HTMLTemplate]
[https://htmltmpl.sourceforge.net/ htmltmpl]
- ["pso"]
- PSP in ["Webware"]
- PTL (["Quixote"])
Python Server Pages (SkunkWeb)
[https://docutils.sourceforge.net/rst.html reStructuredText]
[https://www.owlfish.com/software/simpleTAL/ SimpleTAL]
[https://jensdiemer.net/Programmieren/VerySimpleTALparser/ VerySimpleTALparser] (german)
STML (SkunkWeb)
TAL/TALES/METAL [https://jotweb.tummy.com/ JOTWeb]
[https://www.twistedmatrix.com/documents/howto/woven Woven] (TwistedMatrix)
[https://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52305 YAPTU][https://pythonjournal.cognizor.com 'in Python Journal 3(1)]
[https://zebra.sourceforge.net/ Zebra]
- ZPT (["Zope"])
- Extended XSLT (["4Suite"])
[https://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
[https://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"]
- ["Crusader"]
- ["Draco"]
[https://jotweb.tummy.com/ JOTWeb]
- ["Karrigell"]
- ["Quixote"]
[https://www.webtk.org/ WebTK]
- ["Webware"]
- ["Zope"]
Servlet-like Engines
- ["Cheetah"]
- ["Jaguar"]
[https://snakelets.sourceforge.net/ Snakelets]
Variable Insertion-Replacement Templating Applications (Pre-processors)
- ["Castalian"]
- ["pso"]
- ["Spyce"]
[https://www.nthwave.net/elements/ Elements]
[https://htmltmpl.sourceforge.net/ htmltmpl]
[https://pmz.sourceforge.net Poor Man's Zope]
[https://www.ciobriefings.com/psp/ Python Server Pages]
[https://www.embl-heidelberg.de/~chenna/pythonpages/template.html Ramu's Python pages]
[https://www.owlfish.com/software/simpleTAL/ SimpleTAL]
[https://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52305 YAPTU]
Embedding the Python Interpreter into HTTP (Web) Servers
ModPython for Apache
- ["PyWX"] for AOLServer
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
Python-accessible
Servlet-like Engines
Variable Insertion-Replacement Templating Applications (Pre-processors)
[https://java.sun.com/products/jsp Java Server Pages, JSP]
[https://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 [https://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.