Overview
Waltz (0.1.62 alpha) is a web.py based framework for rapidly designing web apps in 3/4 time. Waltz comes with batteries and tap shoes; pre-configured and ready to dance.
Install
$ sudo pip install --upgrade waltz
Features
In one sentence, Waltz abstracts away many of the messy configurations which otherwise clutter and complicate your application, and in turn provides clean interfaces and modules to speed up your development.
- Tracks analytics via @track route decorators
- Stateless, db agnostic modules user authentication modules
- Out-of-the box session support
- Ecommerce features: Shopping cart system complete with coupon/promo support
- lightweight scaffolding for rapid project setup
Versus web.py
Waltz doesn't try to differentiate itself from web.py as a framework. Rather, it dances harmoniously with web.py, hand in hand. Waltz intends to be an extension of web.py and requires minimal change if you're website is already in web.py. The advantage of using Waltz is it allows you to get a website up and running more quickly, abstracting away most of the configuration and providing modules to accomplish common startup websites features like an ecommerce shopping cart and payment system.
Getting Started
There are two types waltz installs. The latest waltz module (v.0.1.62) is available via pip install. An bare-bones starter application, which uses the waltz framework, can be downloaded here: https://gist.github.com/4584751.
$ sudo pip install --upgrade waltz
$ mkdir project
$ cd project
$ wget https://gist.github.com/raw/4584751/main.py
$ python main.py # 8080 (follow w/ optional port)
If you're in a hurry and prefer waltzing with more kick in your step, you can clone the waltz-example repository from github. The example repository is a bootstrapped project which includes a simple shopping cart, user account pages, login and registration pages, and header + navigation plugins.
$ sudo pip install --upgrade waltz
$ git clone https://github.com/mekarpeles/waltz-example
$ mv waltz-example project # (rename optional)
$ cd project
$ python main.py # 8080 (follow w/ optional port)
Inspiration
I [mek] have been using web.py for about five years on several different production websites. Web.py offers a simple and understandable interface, is robust, and is easily extensible. However, I find a problem in that I am forced to extend my appications in nearly identical ways every time I start a new project. My goal with Waltz is to create a framework which is an extension of web.py, yet reduces the friction one encounters when trying to get started / configured. In addition, a collection of general purpose modules (ecommerce, authentication, social) will be offered (and not enforced), so that hacker entrepreneurs and hackathoners can get their ideas to market more quickly.
Authors and Contributors
Mek, et al; see AUTHORS
Support or Contact
For issues regarding Waltz, email michael.karpeles@gmail.com. Having trouble with Pages? Check out the documentation at http://help.github.com/pages or contact support@github.com and we’ll help you sort it out.