Ferris: specially for App Engine
Google App Engine is one of the most constructive solutions for custom web applications development that offers the opportunity to create and run apps on Google cloud platform. But the absence of stable and productive tool that works with App Engine resulted in expensive and time consuming projects.
Ferris is a world’s first open source Python framework for Google App Engine. This lightweight and customizable tool aims to reduce developer’s time and efforts while building App Engine apps in Python. With Ferris there is no need to do repetitive and redundant tasks and developer can concentrate on business logic.
MVC architecture and customized scaffolding in Ferris
Ferris simplifies access to all default App Engine features. This Python framework has very few dependencies since it relies on included App Engine libraries. Ferris uses the native Datastore APIs, and runs on top of the native webapp2 microframework.
Ferris has Model-View-Controller (MVC) architecture. Models are responsible for data storage and retrieval. Since most of business logic is implemented in model layer it is easier to test it and reuse the code. Views display data to the user and can render different representations (e.g. HTML, JSON, etc.). Controllers manage interactions between models and views. They control responding to HTTP requests.
Ferris manages scaffolding and routing for Rails-like rapid application development automatically, but allows to create custom routes and redirects as well as to customize CRUD (create, read, update, delete) actions and views. Ferris provides device detection for changing themes, layouts, and views to suit mobile and tablet devices.
Among other important features of Ferris framework are:
- Powerful template and theme engine built on Jinja2;
- Integration with Google Accounts and App Engine Search API;
- Form definition and processing with WTForms library;
- Plugin architecture to drop-in additional functionality and share functionality between applications;
- OAuth2 and Google Client API integration;
- Automatic REST/JSON API Models.