My favorites | Sign in
Project Logo
                
Show all Featured downloads:
groksprox.tar.gz
Links:
Blogs:
Feeds:
Groups:
People details
Project owners:
  percious17, brickens...@mfo.de
Project committers:
roger.demetrescu

DBSprockets

The goal of DBSprockets is to give the developer the power to simply generate web content from available database definitions. Because DBSprockets relies heavily on Toscawidgets, it is framework-independent. It is easy to implement forms on TG, TG2, Pylons, Zope, and Grok using DBSprockets' primitives.

DBSprockets is mainly supporting SQLAlchemy, so any application you have that uses SQLAlchemy will be well supported. Support for other ORMs will be available in the future.

Every component of DBSprockets is extensible so that the developer can override a form or a set of forms to his or her liking.

One of the important implementations using DBSprockets is DBMechanic, which acts as a control board for your database crud.

Current Version

0.2.2, 0.5dev

Dependent on

Supported Frameworks

Installation

If you don't already have easy_install setup download ez_setup here. And execute it.

With easy_install:

easy_install dbsprockets

more details.

Declaratives

Declaratives are the easiest way to get going with DBSprockets.

FormBase

Take a look a the simplest example, a login form:

from dbsprockets.declaratives import FormBase
from myProject.myModel import User

class LoginForm(FormBase):
    __model__ = User
    __limit_fields__ = 'username', 'password'

login_form = LoginForm()

In your template, you would render the form like this:

${login_form()}

Here is what the form looks like:

More information about the [wiki:demoModel model] that created this form.

TableBase

And here is an example showing what it looks like to display a list of users:

from dbsprockets.declaratives import TableBase
from dbsprockets.primitives import get_table_value
from myProject import User
     
class UserTable(TableBase):
    __model__ = User

user_table = UserTable()
value = get_table_value(User)

user_table(value=value)

Which when rendered through a web framework looks something like this:

Notice that the town name (Arvada) has been automatically added.

Extensible API

The power of DBSprockets is that every part of it is extensible so customizing forms, widget templates and other portions of your database view is made easier. Simply override the fields you want to change by name or type with what you want. Want a whole set of sprockets that have the same modification? No problem, create a Sprockets cache with your new defaults.

more on DBSprocketsAPI

DBMechanic

Started as a replacement for Catwalk that works with Sqlalchemy.

DBMechanic is a stand-alone TG2 controller for database viewing.

Usage

DBMechanic is easy to use! Here is an example of how to use it in TG 1.0:

from myproject.model import metadata
from dbsprockets.dbmechanic.frameworks.tg import DBMechanic
from dbsprockets.saprovider import SAProvider

dbmechanic = DBMechanic(SAProvider(metadata), '/dbmechanic')

more on DBMechanic









Hosted by Google Code