Table of Contents

Django

Django est un framework web sur Python inspiré en partie de Ruby on Rails. Ses Leitmotiv sont:

Source: http://docs.djangoproject.com/en/dev/misc/design-philosophies/

Ressources

Django & Ajax

Advocacy

Création d'un projet

Source: http://docs.django-fr.org/intro/tutorial01.html

Serveur de dev

Pour le lancer:

python manage.py runserver
# ou:
python manage.py runserver 0.0.0.0:8000

, ilest accessible à l'adesse: http://127.0.0.1:8000

Base de données

Editer settings.py:

SyncDB

SyncDB est une option de manage.py; elle permet de s'assurer que la base possède une structure apte à héberger les données de toutes les applications indiquées dans les INSTALLED_APPS de settings.py. Elle crée donc ce qu'il faut en plus si c'est nécessaire.

python manage.py syncdb

Création d'une application

Dans le répertoire mysite:

python manage.py startapp polls

Cela crée un nouveau répertoire appelé polls avec dedans:

polls/
    __init__.py
    models.py
    views.py

Admin

Django comporte une module d'administration pré-installé. Pour l'activer:

Installer django sur un hébergement

Common Bad Programming Pattern

Importation croisée

Lorsque l'on rencontre l'erreur suivante:

Caught ViewDoesNotExist while rendering: Could not import reporter.reports2.mesure.views. Error was: ...

Et que cette erreur se produit sur n'importe quelle url de l'appli, il y a des chances qu'elle provienne d'une importation croisée: un module importe une ressource provenant d'un second module qui lui-même importe une ressource du premier module. Python n'arrive pas à réaliser le second import. Cette erreur est d'autant plus perfide que la stack est très obscure et provient en apparence d'un truc qui n'a rien à voir avec le problème (sauf bien sur le module que Python n'arrive pas à importer).