Django
Ce wiki a été archivé en 2018.
Le nouveau wiki se trouve à: ressources.labomedia.org Les fonctionnalités sont désactivées: vous pouvez faire une recherche sur Google site:https://wiki.labomedia.org et découvrir La Labomedia. |
Ceci est le mémo d'une auto-formation à l'utilisation du framework Django.
Sommaire
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
- Tuto du site du zéro (fr) date février 2013 et concerne Django 1.5.
- Django Project (en) documentation officielle
- Sam&Max (fr) une mine pour parfaire son apprentissage.
- Déploiement sur un serveur de prod.
Django 1.4
- tuto basé sur l'exemple d'une "Todo list". Même si datant de 2012, bonnes ressources et une approche différentes du site du zéro.