This is an old revision of the document!
Table of Contents
Django
Django est un framework web sur Python inspiré en partie de Ruby on Rails. Ses Leitmotiv sont:
- Faible couplage
- Aussi peu de code que possible
- Développement rapide
- Ne pas se répéter
- Le très pythonique “L'explicite est mieux que l'implicite”
Source: http://docs.djangoproject.com/en/dev/misc/design-philosophies/ Ressources: django-fr
Création d'un projet
Source: http://docs.django-fr.org/intro/tutorial01.html
- S'assurer que Django est bien installé
- Se placer dans le répertoire de son choix et taper:
django-admin.py startproject mysite- Cela crée:
- Un répertoire nommé
mysite __init__.py(package python)- manage.py (utilitaire CLI de gestion du projet)
- settings.py (configuration)
- urls.py (controleur)
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:
DATABASE_ENGINE: 'postgresql_psycopg2', 'mysql' ou 'sqlite3'.DATABASE_NAME: obvious!DATABASE_USER: obvious!DATABASE_PASSWORD: obvious!DATABASE_HOST: obvious!
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
models.pycontient le modèle des données (généré par l'ORM via SyncDB).views.pycontient les vues.
Admin
Django comporte une module d'administration pré-installé. Pour l'activer:
- Ajouter
django.contrib.admindans votre optionINSTALLED_APPS. - Lancer
python manage.py syncdb. Puisque vous avez ajouté une nouvelle application à
INSTALLED_APPS, les tables de la base de données ont besoin d’être mises à jour. - Editer
urls.pyen décommentant le pattern adéquat (commençant sans doute par(r'^admin) - Rendre une appli modifiable par l'admin:
from mysite.polls.models import Poll from django.contrib import admin admin.site.register(Poll)
dans
admin.py
