Skip to content

AkademieOlympia/giotto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What is Giotto?

Giotto is a python web framework. It encourages a functional style where model, view and controller code is strongly decoupled.

Key Features of Giotto include:

  • Extremely terse code. A full featured blog application is under 300 lines of code (including templates)
  • Generic views, generic models and multiple pluggable controllers.
  • Free RESTful interface along with your normal "browser POST" CRUD site.
  • Functional CRUD patterns that do away with the need for django-style form objects.
  • Automatic URL routing.
  • Built in cache (supports Redis and Memcache, and an API for supporting any other engines)
  • SQLAlchemy for database persistence.
  • Jinja2 for HTML templates (with an API for extending for other template engines)

Getting started

Install and create base project files:

pip install giotto
mkdir demo
giotto --http

Now your project is initialized. Open the manifest.py and add the following:

from giotto.programs import ProgramManifest, GiottoProgram
from giotto.views import jinja_template, BasicView

def multiply(x, y):
    x = int(x or 0)
    y = int(y or y)
    return {'x': x, 'y': y, 'result': x * y}

manifest = ProgramManifest({
    'multiply': GiottoProgram(
        model=[multiply],
        view=BasicView(
            html=jinja_template('multiply.html'),
        ),
    ),
})

Now create a file called multiply.html:

<!DOCTYPE html>
<html>
    <body>
        {{ data.x }} * {{ data.y }} == <strong>{{ data.result }}</strong>
    </body>
</html>

Or if you're too lazy to make a template, set the view keyword argument to just BasicView() to use the generic view.

Run the development server:

$ ./http --run

Point your browser to http://localhost:5000/multiply?x=3&y=3. Additionaly, try http://localhost:5000/multiply.json?x=3&y=3. You can also invoke your multiply program through the command line:

$ giotto --cmd
$ ./cmd multiply --x=4 --y=2

Also:

$ ./cmd multiply.html --x=4 --y=2

You can also use positional arguments:

$ ./cmd multiply/4/6

Links:

  • To discuss Giotto, please visit the Google Group
  • Read Giotto's documentation.
  • Check out giottoblog, a full featured blog application written with the Giotto framework.

About

Python web development simplified

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published