Django

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

Ceci est le mémo d'une auto-formation à l'utilisation du framework Django.

Installation sur Linux Mint Debian Edition

À l'heure où sont écrits ces mots, les dépôts ne proposent que la version 1.4 de Django. Il est donc conseiller d'aller télécharger la dernière version et de l'installer à la main.

sudo python setup.py install

Choisir un dossier puis :

django-admin.py startproject mon_projet

Test avec...

python manage.py runserver

...puis regarder http://localhost:8000/ dans un navigateur:

Utilisation

Après édition du fichier settings.py, il faut préciser, dans le fichier urls.py, via des expressions régulières qui traitent les URL soumises, les pages à afficher.

Ces pages sont déterminées dans le fichier view.py au travers de fonction.

Pour créer une application, se placer dans le dossier principal du projet (celui avec le manage.py) :

python manage.py startapp mon_appli

+ ajout de mon_appli dans le settings.py à la section INSTALLED_APPS

urls.py

Il est possible, avec include(), de "router" le traitement des url du projet vers un urls.py spécifique à une application.

Le fichier urls.py du projet devient alors...

from django.conf.urls import patterns, include, url

urlpatterns = patterns(,

   url(r'^mon_appli/', include('mon_appli.urls')) # noter l’absence du $ dans le regex

)

... et il faut créer un urls.py dans le dossier "mon_appli".

urlpatterns = patterns('mon_appli.views',

   url(r'^page_une$', 'mon_template_1'),
   url(r'^page_deux$', 'mon_template_2'),

)

...qui est l'équivalent de

urlpatterns = patterns(,

   url(r'^page_une$', 'mon_appli.views.mon_template_1'),
   url(r'^page_deux$', 'mon_appli.views.mon_template_2'),

)

Ces deux pages seront accessibles via les url mon_appli/page_une et mon_appli/page_deux.

Notes

Pour passer des arguments aux templates il faut passer par un dictionnaire : def mon_template_1(request):

   arg1 = 'toto'
   arg2 = 'titi'
   arg3 = 'tata'
   return render(request, 'template_1.html', {'arg1' : arg1, 'arg2' : arg2, 'arg3' : arg3})

ou par locals(), voire glogals() def mon_template_1(request):

   arg1 = 'toto'
   arg2 = 'titi'
   arg3 = 'tata'
   return render(request, 'template_1.html', locals())

Projet

Initialement développée sous le framework python Karrigel, La grille de l'Amour est en train d'être portée sous Django.

Ressources

Django 1.5

Django 1.4

Archive