cybertools/view
helmutm 0dda2f4b12 added simple 'stateful' (sort of mini-workflow) package
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@1539 fd906abe-77d9-0310-91a1-e0d9ade77398
2007-01-04 11:11:32 +00:00
..
web added simple 'stateful' (sort of mini-workflow) package 2007-01-04 11:11:32 +00:00
__init__.py renamed cybertools.web to cybertools.view and rearranged package layout 2006-11-26 14:52:23 +00:00
base.py added simple 'stateful' (sort of mini-workflow) package 2007-01-04 11:11:32 +00:00
README.txt added simple 'stateful' (sort of mini-workflow) package 2007-01-04 11:11:32 +00:00
tests.py renamed cybertools.web to cybertools.view and rearranged package layout 2006-11-26 14:52:23 +00:00

===============================
All about Views, Templates, ...
===============================

$Id$


Generic Views
=============

OK, there aren't really generic views. Already the first implementation we
want to look at is a specic one: It is based on Zope Page Templates and
uses the classic CMF/Zope 3 approach: The template belonging to a view - more
precisely a page - calls a `main` macro and fills a slot there. But at least
the template implementation is decoupled from the view, so we are able to
put a lot of generic functionality into the view.

In order to make a ZPT work we need a Zope-compatible request, so we use
the standard Zope 3 TestRequest.

  >>> from zope.publisher.browser import TestRequest

  >>> from cybertools.view.web.base import Page, Content
  >>> request = TestRequest()
  >>> view = Page(None, request)
  >>> view.render()
  u'...<html...>...<body...>...</body>...</html>...'