Skip to main content

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.

Metadata

Release files for giotto 0.9.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for giotto 0.9.11
File Size Uploaded
giotto-0.9.11.tar.gz 22.5 kB Details

Release files / giotto-0.9.11.tar.gz

Download URL giotto-0.9.11.tar.gz
Size 22.5 kB
Tags Source
SHA-256 checksum
How to use checksums
10ad3689943dca7e260080d9de9faa4c190a7af2af8121263eb9cb380b458896
BLAKE2b-256 checksum
How to use checksums
85300440ac98e6e4b4a6067c511a8f9375fe5d357439fd7bfc2a988f6c61ab42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.10.5

1 release file

0.10.4

1 release file

0.10.3

1 release file

0.10.2

1 release file

0.10.1

1 release file

0.10.0

1 release file

0.9.17

1 release file

0.9.16

1 release file

0.9.15

1 release file

0.9.14

1 release file

0.9.13

1 release file

0.9.12

1 release file

This release

0.9.11 This release

1 release file

0.9.10

1 release file

0.9.9

1 release file

0.9.8

1 release file

0.9.7

1 release file

0.9.6

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.1.0

1 release file

0.0.2

1 release file

0.0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page