Welcome to The Ferris Framework¶
Ferris is a rapid application framework created specifically for Google App Engine. This framework is designed to get you up and running as quickly as possible with flexible, granular scaffolding for common CRUD operations. Ferris is inspired by Ruby on Rails, CakePHP, Django, and Flask.
Ferris is licensed under the Apache License, Version 2.0.
- Uses native App Engine libraries for data modeling.
- Familiar model-view-whatever style architecture.
- Automatic routing with the ability to specify completely custom routes.
- Granular and flexible handler and template scaffolding.
- Powerful template and theme engine built on Jinja2.
- Integration with wtforms.
- Global (application-wide) and local (within object) events system.
- Plugin architecture.
- OAuth2 consumer support built-in.
- Pre-packaged Google API Client, GData Client, and PyTZ for App Engine.
A Quick Look¶
A simple blog application could be written like this:
from ferris import Model, Controller, scaffold class Post(Model): title = ndb.StringProperty() content = ndb.TextProperty() class Posts(Controller): class Meta: prefixes = ('admin',) components = (scaffold.Scaffolding,) Model = Post list = scaffold.list view = scaffold.view admin_list = scaffold.list admin_view = scaffold.view admin_add = scaffold.add admin_edit = scaffold.edit admin_delete = scaffold.delete
At this point, a full administrative interface for creating Posts would be available at /admin/posts and a publicly accessable list and view would be present at /posts.
- Getting Started
- Tutorial: Multi-User Blog
- User’s Guide
- Folder Structure
- How Ferris does MVC
- Authorization Chains
- Request Parsers
- Response Handlers
- Static Files
- Google API Helper
- Uploads & Downloads
- Contributing & License