.. -*- coding: utf-8 -*-
Introduction
============
What is `Google AppEngine` ?
------------------------------
`Google AppEngine` is provided with a partial port of the `Django`
framework, but Google stated at Google IO 2008 that it would not
support a specific Python web framework and that all
community-supported frameworks would be more than welcome[1]_.
Therefore Logilab_ ported `CubicWeb` to run on top of `Google AppEngine`'s
datastore.
.. _Logilab: http://www.logilab.fr/
.. [1] for more on this matter, read our blog at http://www.logilab.org/blog/5216
Essentials
----------
XXXFIXME MERGE WITH 02-foundation.en.txt
Schema
The schema defines the data model of an application as entities and
relationships. It is the core of an application. Entities and
relationships are modeled with a comprehensive language made of
Python classes.
Query language
A full-blown query language named RQL is used to formulate
requests to the datastore.
Result set
A resultset encapsulates the results of a request sent to
the datastore and informations about this request.
Views
A view is applied to a `result set` to present it as HTML, XML,
JSON, CSV, etc. Views are implemented as Python classes. There is no
templating language.
Generated user interface
A user interface is generated on-the-fly from the schema definition:
entities can be created, displayed, updated and deleted. As display
views are not very fancy, it is usually necessary to develop your
own. Any generated view can be overridden by defining a new one with
the same identifier.
Components
Pieces of schema and sets of views can be combined into
components. Larger applications can be built faster by importing
components, adding entities and relationships and overriding the
views that need to display or edit informations not provided by
components.