2527
Comment: Added Woven
|
← Revision 20 as of 2013-02-04 19:54:13 ⇥
2506
shorten title
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from TemplatingSystems ## page was renamed from PresentationTechnologies |
|
Line 3: | Line 5: |
== Presentation Styles == | == Data on the web == |
Line 5: | Line 7: |
There are several different styles of presentation technology employed in the various Web application frameworks (see WebProgramming). | There are several approaches to represent data using Python on a web page (see WebProgramming). |
Line 9: | Line 11: |
* ["Programmatic"] | * [[Programmatic]] |
Line 11: | Line 13: |
An interesting article which introduces other useful terminology is [http://www.perl.com/pub/a/2001/08/21/templating.html "Choosing a Templating System"]. | Another interesting article about this is [[http://www.perl.com/pub/a/2001/08/21/templating.html|"Choosing a Templating System"]]. |
Line 15: | Line 17: |
In the area of syntax, several different design decisions are made alongside the above classifications, and this is often the principal reason that new template systems get invented: | Different approaches lead to different design decisions. Often it is the principal reason that new template systems get invented: |
Line 28: | Line 30: |
* ["Cheetah"] * PSP (from ["Webware"]) * ["Spyce"] |
* [[Cheetah]] * PSP (from [[Webware]]) * [[Spyce]] |
Line 36: | Line 38: |
* DTML (Document Template Markup Language - see ["Zope"]) * [http://www.twistedmatrix.com/documents/howto/woven Woven] (from TwistedMatrix) |
* DTML (Document Template Markup Language - see [[Zope]]) * [[http://www.twistedmatrix.com/documents/howto/woven|Woven]] (from TwistedMatrix) |
Line 39: | Line 41: |
* ZPT (Zope Page Templates - see ["Zope"]) | * ZPT (Zope Page Templates - see [[Zope]]) |
Line 44: | Line 46: |
* PyMeld - StructureAnnotation and ["Programmatic"] * ["STML"] (from SkunkWeb) - PythonInWebPage, StructureAnnotation, and ["Programmatic"] being all equally apt (or equally inadequate) |
* PyMeld - StructureAnnotation and [[Programmatic]] * [[STML]] (from SkunkWeb) - PythonInWebPage, StructureAnnotation, and [[Programmatic]] being all equally apt (or equally inadequate) |
Line 49: | Line 51: |
* PTL (from ["Quixote"]) | * PTL (from [[Quixote]]) |
Line 60: | Line 62: |
See [http://pythonjournal.cognizor.com 'Python Journal 3(1)'] a feature article | See [[http://pythonjournal.cognizor.com|'Python Journal 3(1)']] a feature article |
Data on the web
There are several approaches to represent data using Python on a web page (see WebProgramming).
Another interesting article about this is "Choosing a Templating System".
Syntax
Different approaches lead to different design decisions. Often it is the principal reason that new template systems get invented:
Examples
Some presentation systems fall neatly into the categories above. Others are less easy to classify but have a closer association to one category than the others.
PythonInWebPage
StructureAnnotation
DOMTemplate (from TwistedMatrix)
DTML (Document Template Markup Language - see Zope)
Woven (from TwistedMatrix)
wt (see JonsPythonModules)
ZPT (Zope Page Templates - see Zope)
Hybrids
CHTL and CGTL (from CherryPy) - PythonInWebPage and StructureAnnotation
STML (from SkunkWeb) - PythonInWebPage, StructureAnnotation, and Programmatic being all equally apt (or equally inadequate)
Programmatic
PTL (from Quixote)
Notes
Feel free to add more abstract descriptions and more examples to help people decide what they are looking for!
Do you need to use full-fledged python, embedded bits of definitions but no functions -- there is a range of options depending on your problem. Sometimes there's no python in "the output page" -- as in raw documents put thru a filter. Or there may be limited amounts of embedded python -- as in YAPTU and other filters. Or python may be the matrix language, with text embedded within it. Your handler code can be anything from a substituter (using, say, regular expressions to catch things to be altered) to a mini python engine. See 'Python Journal 3(1)' a feature article that draws together several of the options above into a series on the pure-text to pure-python "dimension". See what your options are.