Nevow - Pronounced as the French ‘nouveau’, or ‘noo-voh’, Nevow is a web application construction kit written in Python. It is designed to allow the programmer to express as much of the view logic as desired in Python, and includes a pure Python XML expression syntax named stan to facilitate this. However it also provides rich support for designer-edited templates, using a very small XML attribute language to provide bi-directional template manipulation capability.
Nevow also includes Formless, a declarative syntax for specifying the types of method parameters and exposing these methods to the web. Forms can be rendered automatically, and form posts will be validated and input coerced, rendering error pages if appropriate. Once a form post has validated successfully, the method will be called with the coerced values.
- XHTML templates: contain no programming logic, only nodes tagged with nevow attributes
- data/render methods: simplify the task of separating data from presentation and writing view logic
- stan: An s-expression-like syntax for expressing xml in pure python
- formless: (take a look at formal for an alternate form library) For describing the types of objects which may be passed to methods of your classes, validating and coercing string input from either web or command-line sources, and calling your methods automatically once validation passes.
- webform: For rendering web forms based on formless type descriptions, accepting form posts and passing them to formless validators, and rendering error forms in the event validation fails
- The Nevow Guide An introductory guide covering Nevow basics (Getting Started, Object Traversal, Object Publishing, XML Templates, Deploying Nevow Applications)
- Nevow API
- Meet Stan: An excellent tutorial on the Nevow Document Object Model by Kieran Holland
- Twisted Components: If you are unfamiliar with Interfaces and Adapters then Nevow may not make much sense. This is essential reading.
- Error Handling: How to create custom error (404 and 500) pages
- Putting Nevow Page under Apache Proxy
- Using Nevow with Genshi templates: original and dynamic
- Tutorial: Using Storm with Nevow
- Nevow & Athena FAQ
Bleeding Docs - SURGEON GENERAL’S WARNING: Reading the docs listed below pertain to code that has not yet been released and may cause Lung Cancer, Heart Disease, Emphysema, and Pregnancy complications.
- Context Removal - Conversion steps for moving from context-based Nevow code to context-less code.
To run the examples yourself (Source in [source:trunk/Nevow/examples]):
richard@lazar:/tmp$ cd Nevow/examples/ richard@lazar:/tmp/Nevow/examples$ twistd -noy examples.tac 2005/11/02 15:18 GMT [-] Log opened. 2005/11/02 15:18 GMT [-] twistd SVN-Trunk (/usr/bin/python 2.4.2) starting up 2005/11/02 15:18 GMT [-] reactor class: twisted.internet.selectreactor.SelectReactor 2005/11/02 15:18 GMT [-] Loading examples.tac... 2005/11/02 15:18 GMT [-] Loaded. 2005/11/02 15:18 GMT [-] nevow.appserver.NevowSite starting on 8080 2005/11/02 15:18 GMT [-] Starting factory <nevow.appserver.NevowSite instance at 0xb6c8110c>
... visit http://localhost:8080 and you’ll begin to appreciate the possibilities!
You will find plenty of experts on the mailing lists and in the chatrooms who will happily help you, but please make sure you read all the documentation, study all the examples and search the mailing list archives first. The chances are that your question has already been answered.