Version 62 (modified by 16 years ago) ( diff ) | ,
---|
Install a Development Environment
InstallationGuidelinesDeveloper
Python
Indentation matters (use 4 spaces instead of Tabs)
- http://diveintopython.org/
- http://openbookproject.net/thinkcs/python/english2e/
- Style Guide: http://www.python.org/dev/peps/pep-0008/
Web2Py
This is an MVC environment (like Rails & Django).
Web2Py can work at several different levels of abstraction.
The SahanaPy framework (S3) is built on a mixture of the simplified T2 level & Web2Py's Auth/Crud classes in tools.py
, however sometimes we need more control therefore need to drop down a level or two.
Web2py also includes a T3 level of abstraction, but we're not using that directly (just borrowing ideas).
- Web2Py:
- Official Manual (costs money): http://www.lulu.com/content/4968879
- http://www.vimeo.com/3703345
- http://mdp.cti.depaul.edu/examples/static/cookbook.pdf
- http://mdp.cti.depaul.edu/examples/static/web2py_cheatsheet.pdf
- http://mdp.cti.depaul.edu/examples/default/examples
- http://mdp.cti.depaul.edu/examples/default/tools
- http://mdp.cti.depaul.edu/examples/default/dal
- http://mdp.cti.depaul.edu/examples/static/epydoc/index.html
- T2:
Model
Defines databases in: /models/module.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 with an underscore:_db.py
, _gis.py
Controller
Python functions in /controllers/module.py
e.g.
def list_records(): items=t2.itemize(table) return dict(items=items)
View
HTML/Javascript templates in /views/module/function.html
- 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 fromviews/*_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
Static CSS/Javascript files are stored in /static
- Tips - useful links to explore