Welcome to JOTWeb
"I wanted to personally thank you for your JOTWeb Application. I have been pulling my hair out with all of the other python web apps and not liking any of them."
-- Rick Walia
News
A common measure of performance for web systems is how well they stand up to being Slashdotted. See the news section for information on how a JOTWeb2 site handled being Slashdotted and came through with flying colors. Note that the site menu (above) includes links to the "News" and "Changelog" pages, which will give you more information about current happenings in the JOTWeb world.JOTWeb Benefits
The following are some of best reasons for using JOTWeb:-
Separation of presentation and logic.
Strives to be simple and obvious for a Python programmer.
Builds off existing technologies.
Good documentation.
Extremely fast and easy to use page caching.
More details on the benefits listed above are provided in the Benefits setion of the JOTWeb Introduction.
Introduction
JOTWeb is a system for developing dynamic web applications using HTML and TAL/TALES/METAL for templating and Python for the programming. It integrates with the Apache web server using mod_python. It's goals are:-
Simple for a Python programmer to use.
The programming is in Python and the presentation is in
HTML and TAL. Python is in .py files, presentation is in .html
files, and referencing between them is easy. Much better for
maintenance, in my experience.
Cascading of objects allows sub-directories to easily
inherit the look and feel of parents, while overriding
directory-local parts.
All JOTWeb related data is stored in the file-system.
Use familiar tools such as CVS and your favorite editor.
Good documentation. So far I've spent roughly equal
amounts of time documenting and coding.
Why Another WebApp
The short answer is that I couldn't really find another web application system that I felt comfortable with. They were either too heavy-weight, didn't work as I expected them or didn't fit my development model, were not well enough documented, etc... Because of my inability to find a web application system using Python that I could feel comfortable with, despite looking for at least the last year, I started thinking about what my ideal system would look like. JOTWeb is the implementation of the results of that.Sites That Use JOTWeb
-
The tummy.com, ltd.,
Linux Consulting. (Slashdotted) One of the more extensive
JOTWeb2 sites including thousands of dynamic pages, and journal
entries which are pulled directly from the database.
Worryfree Linux
Hosting. Dynamic site including customer login site and
form processing.
Know Your
College. Helping students and others experience life at a
particular college with a collection of other students'
day-to-day experiences.
The Hacking
Society Development Site. Includes session management
and form handling. This site is where development on the
next generation of the Hacking Society
Website is happening.
My On-line
Journal. This site is a simple BLOG that I implemented
using a database to store the entries and using a secure remote
publishing mechanism for uploading the entry and associated
pictures. The site as it is now took less than 2 hours to
build from scratch, including the CSS, database schema, and
pages. The remote upload app took about another hour.
This site.
Getting Started
Don't know what TAL is? It's also called "ZPT" and is the next generation templating system used by Zope. To get a feel for how it works, see the Zope Page Templates Front Page The documentation is a good place to start for getting a feel for the current status. There is an Examples link at the top of this page which shows some samples including source code and rendered output. There is also an "examples" directory in the source, which can be of use. There's also a "GettingStarted" file in the source which goes into more detail on where to start.Requirements
-
Zope 3 page templates. Both a tar file and RPMs are
available in the
FTP directory for JOTWeb2. If you already have Zope 3
installed, you will not need this.
Python version 2.3 or
later.
mod_python version
3.0.1 or later.
Apache.