Scaffolding

Scaffolding is the process of creating a new component of your web application through a template or preset.

Creating new Controllers, Models and Templates

On TurboGears this is provided by the gearbox scaffold command which will look for .template files inside your project directory to create new scaffolds for your web app.

Since version 2.3.5 projects quickstarted by TurboGears provide .template files for model, controller and template so new models, controllers and templates can be easily created in your project by running gearbox scaffold.

For example to create a new Photo model simply run:

$ gearbox scaffold model photo

It will create a model/photo.py file with a Photo class inside which you just need to import inside model/__init__.py to make it available inside your app.

Creating All Together

Multiple scaffolds can be created together, so in case you need to create a new model with a controller to handle it and an index page you can run:

$ gearbox scaffold model controller template photo

Which will create a new controller with the associated page and model. To start using the controller mount it inside your application RootController.

Creating Packages

There are cases when your controllers, templates and model might become complex and be better managed by a python package instead of a simple module. This is common for templates which will usually be more than one for each controller and so are usually grouped in a package for each controller.

To create scaffold in a package just provide the -s [PACKAGE] option to the scaffold command:

$ gearbox scaffold -s photo controller template photo

This will create a photo controller and template inside a photo package where multiple templates can be placed.