[thelist] zope: a few questions

Seb seb at members.evolt.org
Mon Jan 13 22:04:01 CST 2003


<snip list of zope questions />

Hi Chris,

I'll try to answer your questions, and give you a brief introduction to
Zope from the point of view of somebody who has gone from newbie, through
site developer, and now on to contributor in the past 6 months. (I have to
do this in front of a lot of people in about 6 hours, so this is good
practice.)

Here's how Zope works:

Zope isn't just a set of scripts that interface to a backend for content
management, it's something much more than that. Zope is an entire framework
for building web applications. Whereas you might be used to the idea of
taking a MySQL database, adding some PHP scripts, and running it on an
Apache webserver, with Zope, all you need is Zope.

Zope is more of a collection of technologies that are written in Python.
Everything from the ZODB, the database engine (which is an object database,
not a relational database like MySQL) through the application server, the
publishing system, the web and ftp servers... even the scripting language
are all python.

The great thing about Zope is that you can use it straight out of the box,
and it'll do most of what you need. To get you started on building a site,
you have Zope Page Templates, which are a fully-xml compliant templating
language. If you know HTML, then you can jump straight into building the
outline of your site in ZPT, and start adding display logic in as you learn it.

Content can immediately be stored in a couple of ways. Most likely you will
want to try out storing StructuredText, which is a minimal set of loose
markup. Basically, you write a text file with markup like *this* for bold
text, "this is a link":http://mysite.com ... etc. You can pull this content
straight into the page templates that you've built in ZPT.

When you're feeling a bit more confident, you can start getting involved in
scripting and process flow on the site, using Python Scripts. Python
Scripts allow you the power and flexibility of writing in an extremely
powerful language, contained within a sandbox that doesn't allow
potentially dangerous operations such as writing to the filesystem.

This is something you'll notice pretty quickly: that the Zope environment
is pretty much self-contained. There's no need to store content on the
filesystem, as everything is held in the object-hierarchy of the database.
You can edit files in place, in a web-browser using the Zope Management
Interface, via FTP (my preferred option), or via WebDav. Every object you
edit has a complete history of all changes made to it, and you can
roll-back any individual object to any point in its history.

As well as the full set of built-in modules, Zope allows component
developers to write their own Zope "products" in python, providing an
astonishingly flexible, community-driven expansion process. Additional
products are available for everything from entering MS Office documents on
the system directly and having them automatically converted to HTML and
indexed for searching, through to PDF generation, calendering, email
management, etc...

So, to recap:

Zope is an object-based application server, with a publishing system that
supports a wide range of access methods (Web, FTP, WebDav, and more). It
uses Python as both a component development language, and as a scripting
language for presentation logic. (Much as IIS would use VB for both ASP
scripting and COM development.) You can, however, use other scripting
languages in place of Python. (Perl is currently supported, and there is
some good work on PHP and Java.)

It doesn't require another webserver in front of it, but you can interface
to Zope via a webserver if needed. (Zope is pretty good at serving static
content. It has a great caching mechanism.) It's not just a front-end to a
content managment system.

I forgot to mention the great search engine that Zope provides: ZCatalog.
ZCatalog is very, very fast. So fast that I tend to use it as a caching
mechanism for content retrieval on just about every page I build. With
large amounts of content, it's quicker to query the search engine to
retrieve lists of content.

If you are considering Zope, but might be put off by Python, don't be.
Python is a ludicrously easy language to learn. Have a look over at
http://python.org for some very good information.

Hope some of this information helps. If you've got any specific questions
at all, feel free to mail me directly, I only tend to get to read thelist
in the evenings.

- seb

--
seb can be found over at http://poked.org




More information about the thelist mailing list