News

[17/Sep/2009:19:20] Release 0.5 includes Open Flash Chart support.

[01/Jul/2009:10:50] Repoze.who authentication tutorial added

[22/Jun/2009:11:36] AJAX calculator tutorial added.

[01/May/2009:14:15] MVC/SQL based wiki tutorial added.



Contact Email:



view source
W.
intro.
whiff



Download instructions
at whiff.sourceforge.net
project page
.
WHIFF DOCUMENTION

Whiff Documentation Index

WHIFF [WSGI HTTP Integrated Filesystem Frames] is an infrastructure for easily building complex Python/WSGI Web applications by combining smaller and simpler WSGI components organized within file system trees.

This is the top level index page for WHIFF documentation.  
×
The navigation pane is to the left.

A description of subsections follows the main discussion area.

The documentation is implemented using WHIFF -- please click the "source" link below the navigation pane to view the configuration for the page you are viewing.

You may add comments to the page by filling and submitting the form at the bottom.

What is WHIFF?

WHIFF is a collection of support services for WSGI/Python web applications which allows applications to be composed by "dropping" dynamic pages into container directories. This mode of development will be familiar to developers who have created PHP applications, vanilla CGI scripts, Apache/modpy Publisher applications, JSP pages, or static web content. WHIFF requires Python 2.5 to run out-of-the-box.  

×
I believe most or all WHIFF features will run using Python 2.3 or better if you install the wsgiref standard library, but I haven't tested this assertion extensively.

The WHIFF implementation significantly generalizes the "drop in" paradigm to support WSGI middleware components and application fragments as well as stand-alone pages.

WHIFF provides other services in addition to supporting "drop in" components, such as managed application resources.

WHIFF is simple and light weight. WHIFF enhances the underlying WSGI interface and can be combined with other WSGI based technologies.  

×
To paraphrase a comment by Alex Morenga
[WHIFF is] just some template tags and some support functions (e.g. for generating URLs based on the context of the current page) [implemented using] WSGI middleware.

WHIFF goodies

The WHIFF infrastructure makes it easy to encapsulate complex components and WHIFF includes some standard complex components both for demonstration purposes and for general use.

WHIFF includes the jQuery and jQueryUI javascript libraries as well as wrapper middlewares to assist in the use of these libraries as described in the JQueryUI widget tutorial. For example the embedded frame below includes JQueryUI widget mated to an AJAX callback to implement a geology challenge question. Please try it out.

WHIFF includes support for the amCharts and Open Flash Charts Flash-based chart libraries. For example the following scatter chart is generated by a straightforward invocation of the standard WHIFF OpenFlashChart middleware:
If this text isn't replaced a chart
failed to load.
You may need to upgrade your flash player.
Please see the Chart tutorial for more information on formatting Flash based charts.

WHIFF includes standard support for small, large, or infinite interactive tree view widgets like the one shown in the embedded frame below:

The Tree View tutorial explains how to use WHIFF tree views.

Please see the demos and other tutorials for more information on WHIFF goodies.

Why WHIFF?

WHIFF makes it easier to create, deploy, and maintain large and complex Python based WSGI Web applications by reducing the basic complexity of the Web development environment.  
×
I created WHIFF to address complexity issues I encounter when creating and fixing sophisticated Web applications which include complex database interactions and dynamic features such as AJAX (Asynchronous Javascript And XML).

The primary tools which reduce complexity are

For example, this configuration template from the "resume" tutorial constructs a document by piecing together a "scaffolding" named resume and two "fragments" named experience and education

whiff source generated page formatted output
temp content
Use the name to find the thing.
All of the components in the example are identified by URLs which correspond to files of the same name in the same directory. By helping keep different name spaces consistent the WHIFF infrastructure makes it easier to construct and understand web applications.
Stay in control of your design.
All supporting conventions and tools offered by WHIFF are optional. WHIFF is designed to work well with other modules conformant to the WSGI (Web Service Gateway Interface) standard. Developers and designers are free to use those WHIFF tools that work for them and ignore or replace the others.
Grab the ingredients you need.
WHIFF does not provide a "packaged cake mix" for baking a web application. Instead WHIFF is designed to provide a set of ingredients which can be easily combined to make web applications (with no need to refine your own sugar or mill your own wheat).
Read on...
All of the documentation available here is implemented using WHIFF and exercises a lot of WHIFF features -- I hope you find it useful. Please leave a comment if you have a suggestion for an improvement. the source for this documentation is available under the INSTALL/doc directory.
Subsections:

++ Quick Start    
×
How to install and start working with WHIFF (for the impatient).


++ Concepts    
×
Whiff organizes web components by mapping URLs to filenames in a similar manner to the way static web pages are organized by mapping URLs to filenames. Whiff also helps organize the life cycle of an application into three stages: resource allocation, parameterization, and request execution.


++ Tutorial    
×
Walking through some examples will help you learn the organization and capabilities of the whiff package.


++ Reference    
×
The reference section systematically describes the whiff components.


++ Tests, Demos, and Examples    
×
A number of demo applications and self-tests ship with the whiff package.


++ Other resources    
×
There are other sources of information which help people to understand and build whiff applications.


++ Whiff is cool because...    
×
This self-referential WHIFF document uses itself to describe why WHIFF is cool and why you can't write pages like this one as easily using any other method (as far as I know).

0 comments.
Care to comment?
name: (required)
- email (not published):
comment: (required)

<< security number? >>