[ZDP] BackTalk to Document The Zope Book (2.6 Edition)/Using Zope
Page Templates
webmaster at zope.org
webmaster at zope.org
Sun Jun 13 18:14:26 EDT 2004
A comment to the paragraph below was recently added via http://zope.org/Documentation/Books/ZopeBook/2_6Edition/ZPT.stx#2-62
---------------
To start, you need to write just one line of Python. Go to the
'FileLib' folder and create a 'Script (Python)' in that folder.
Give the script the id 'files' and click *Add and Edit*. Edit the
script to contain the following Python code::
## Script (Python) "files"
##
return container.objectValues(['File'])
% Anonymous User - Nov. 4, 2003 10:52 am:
Thanks. We are learning about TAL and three pages into it we are confronted with Python.
Is there no way of doing this with TAL?
% Anonymous User - Nov. 10, 2003 11:00 pm:
No - there isn't (the short answer, but there are ways, it's just not the point). The point is to separate
the presentation from the actual logic. If you want to do logic in your templates, take a look at DTML. If
you are reading this to build a web application, you *will* need to know Python. It's not easy learning brand
new stuff, especially if you are in completely unfamiliar territory: take a break, plod through the reading
(some things will be explained in time), and if you are still confused join the mailing list and ask some
questions. I've found the best way is to play with it yourself. I admit that takes *a lot* of time, but you
really won't know it otherwise.
% Anonymous User - Nov. 20, 2003 9:35 am:
The ['file'] bit means only return items in the folder which are files (as opposed to dtml methods or
something) right?
If you typed return container.objectValues() then you'd get everything in the folder, rather than just the
files, right?
Python: container.objectValues()
TAL: content/objectValues
These are referencing the same variable/property/thing just using different syntax. Yes?
It would be nice to know what the ##'s are for.
If this is really a newbie tutorial then it wouldn't do any harm to spoon feed us a bit ;-P
% Anonymous User - Dec. 2, 2003 11:18 pm:
To answer your questions:
correct (but the capitalization is significant);
correct;
yes;
the lines that begin with # are comments which, in the case of zope's Python Scripts, are actually mildly
significant in ways that will be explained in later chapters. IMHO those lines should be left out of this
example, it's not necessary at this stage and it's just distracting.
% Anonymous User - Jan. 17, 2004 8:30 am:
could you explain the differences between
container.objectValues(['File'])
and
container.objectValues('File')
% ExileJedi - Jan. 18, 2004 3:25 pm:
Looks like objectValues() takes a list of types of things to return, and returns you a list of items that
match those types. The square brackets indicate a Python list, eg ['Fred','Barney','Wilma']. When you call
container.objectValues(['File']), you just want the objects that are considered "File"s. You could call
contain.objectValues(['File','Smurf']) if you also had objects that would be considered the "Smurf" type, as
opposed to the "File" type. If you instead call container.objectValues('File'), you can only get items of the
one "File" type that you have passed; you're passing a string rather than a list.
% Anonymous User - June 13, 2004 6:14 pm:
Starting Zope, you need to know everything at once. And that is *pretty* much. If you start with TAL and ZPT
(page templates), you need python to do this and somethin' else to do that. Even little "Hello World"-Apps
tend to be like 4 to 5 objects in Zope with at least 500 statements with non of them easy to remember. And
each part offers^H^H^H^H^H^H forces you with a new syntax.
More information about the ZDP
mailing list