[Twisted-web] Re: Re: new nevow know-how needs...;-)
James Y Knight
twisted-web@twistedmatrix.com
Sat, 6 Mar 2004 18:28:02 -0500
On Mar 6, 2004, at 5:03 PM, Stephen Waterbury wrote:
> Thanks, James -- I see now, and I appreciate your patience! :)
> I must say that for me this is rather non-intuitive.
Well, how would you like it to work? It needs to support contextual
data. Consider the following (actually working) example, which in my
experience is more common:
from nevow import inevow, rend
class User:
__implements__ = inevow.IContainer
allowableAttrs = ('name', 'password')
def __init__(self, name, password):
self.name=name
self.password=password
def child(self, context, name):
if name in self.allowableAttrs:
return getattr(self, name)
class MyPage(rend.Page):
def data_users(self, context, data):
return (User('James Knight', 'twiddle'), User('Matt Goodall',
'twoddle'), User('Bogus User', '1'))
def data_title(self, context, data):
return "My Title"
docFactory = rend.xmlstr(
"""<ul nevow:data="users" nevow:render="sequence">
<li nevow:pattern="item">
Name: <span nevow:data="name" nevow:render="string" />
Password: <span nevow:data="password" nevow:render="string"
/>
</li>
</ul>""")
from twisted.application import service,internet
from nevow import appserver
application = service.Application("disktemplates")
site = appserver.NevowSite(MyPage())
internet.TCPServer(8080, site).setServiceParent(application)