The router, launched by the route command, instantiates all the App's App classes. This is done in the order of the apps= string in local.ini ; then it calls the start method of each, then the configure message of each.

Once a message is received, it follows the following procedure:

call parse method of each App, passing it the Message object.

class handle method of each App, passing it the Message object.

Once one of the handle method return True, the message is considered handled and thus not passed to the other apps. That's why order matters.

Django's Models are an ORM (Object Relational Mapping). This means that from your apps, you will instantiate those objects like live objects and django will take care of storage/retrieval to/from the database.

Important: Your model is just the representation of your data. You can consider it like the list of your tables fields. Each time you modify it, you will need to ask Django to update the actual database, which is separate.

To save the developer some time and effort with dealing with HTML, Django offers the ability to use templates. A template is an HTML file which can accept a particular syntax to display variables and other data from the view.

This template extends the base_template one (which is RapidSMS's design) and replace the content of the block content with a paragraph. This paragraph contain a template variable which we will have replaced by some text in the view.

To access the Data corresponding to your models visually, you can enable the Django admin. Django provide a web interface for administering some of its features but also the models created by developers.

It is accessible at http://<server>/admin.

Refer to [[RapidSMS Developers Guide/Customizing_Admin_U.I|Customizing Admin U.I] to enable it for your App.