wiki:DeveloperGuidelines/Tutorial

Version 9 (modified by Fran Boon, 9 years ago) ( diff )

--

Tutorial

Sahana Eden Essential Guide

Have a look at the Sahana Eden Essential Guide Book and follow the tutorial chapters:

Python

DeveloperGuidelines#Python

MVC Architecture

Model

Defines database tables in: /modules/s3db/modulename.py

The Models are loaded 1st within Web2Py processing, before the controllers.
So you can import any global modules/set any global variables here.
The Models are imported in alphabetical order, so we load the files which other modules depend on 1st, hence naming them appropriately:

000_1st_run.py, 000_config.py, zz_last.py, etc

View

HTML/Javascript templates in /views/*

  • these are normal HTML/JS files with the ability to add in Python code (e.g. variables) surrounded by brackets: {{ interpreted python here }}
  • there should be an .html file available for each function in the module (name normally being the same as the function)
  • these normally inherit from views/layout.html which also includes the JavaScript from views/*_ajax.html
  • if there is no view defined then a default view will be displayed, which will show the values of all the data it can see, but not be formatted nicely

Controller

Python functions in /controllers/modulename.py
e.g.

   def list_records():
       items = crud.select(table)
       return dict(items=items)

Static CSS/Javascript files are stored in /static

Note: See TracWiki for help on using the wiki.