Ringo is a Python based high level web application framework build on top of Pyramid. The framework can be used to build form based management or administration software.
Major scope of application for Ringo are form based and data driven management and administration applications.
Ringo started in 2013 as a coding pet project of Torsten Irländer. He looks back on almost 10 years of python web application development. Having enough from building web applications with similar needs like user administration, permissions systems or nice forms with validation from scratch every time he decided to build Ringo as a high level web framework which provides typical features often needed in web applications.
Ringo provides a building block architecture and "Ready to Use" components.. This allows fast and flexible development.
With main focus on form based application Ringo uses formbar as form library. This opens great capabilities on form layout, validation and workflows.
Together this makes Ringo a great tool in a rapid development process.
Ringo is currently used in various areas of social casework:
Further management software:
Ringo is ready for the use in productive environment and is continuously developed through various projects.
The development currently happens exclusive on the head of the source repository. There is no maintenance on older versions yet.
The following steps will show you how easy it is to create a Ringo based application using a PostgreSQL database and start storing your data in a new module. The new application will be called Foo
This setup is tested on Ubuntu 12.10 but should (hopefully) work on other distributions too.
First start with creating some folders where your ringo application development can happen.
mkdir Foo cd Foo # Create a virtualenv for your new Foo application virtualenv env # Activate the virtual env and continue the next steps with # activated virtual env. source env/bin/activate
Get the source from Bitbucket and install Ringo.
hg clone https://bitbucket.org/ti/ringo cd ringo python setup.py develop # Leave the ringo directory to continue with the next step. cd ..
Ringo comes with an application scaffold which make it easy to create a new Ringo based application.
pcreate -t ringo Foo cd Foo python setup.py develop
To be able to do the next steps you need to install your new application too.
Initialise the database by invoking one of the nice administration commands. After that we can start our fresh created application for the first time.
createdb foo foo-admin db init pserve development.ini
Stop the server by pressing CTRL-C
Wow that was easy! But wait. We want to create a new module to store some custom items in our application. Let's say we want to store bar items. Creating a new module is easy. Thanks to the administration command its simply a question of doing the following.
# First we will backup the database. pg_admin foo > foo.sql # Then invoke the command to add a new modul to your # application foo-admin modul add bar # Please follow the instructions printed on the console # after invoking the command. # Touch and apply the generated alembic migration script to # update your database. Touching is currently crucial for a # working migration! touch /path/to/the/generated/migrationscript.py foo-admin db upgrade
This command will create a new module called "bar" and also creates default LCRUDIE (List, Create, Read, Delete, Import and Export) views!
This step is optional. If just want to get a fast impression of a Ringo based application skip over to step 7.
Otherwise this step is a good starting point if you
want to actually safe something useful in your new module.
The created module is still empty. It just has the basic
attribute like an internal ID. It is waiting to be filled
with life ;)
The next steps are
Here we are! Its time to launch the application.
pserve --reload development.ini