Atelier 2011-12-12 : Plan détaillé

INTRODUCTION

PARTIE 1 : RAPPELS

Django

Principaux fichiers

Projet carto : définition du besoin

L'AUF veut procéder à la cartographie de ses établissements membres. On veut savoir quelle formation est donnée où... ... et répertorier les projets des membres.

Projet carto : modélisation

PARTIE 2 : HANDS-ON : PROJET ET APPLICATIONS

Télécharger les sources initiales

Repartir du projet créé lors de l'atelier du 2011-12-07. Nous avions alors :

Frontend : présenter les données

https://docs.djangoproject.com/en/1.3/topics/http/urls/

https://docs.djangoproject.com/en/1.3/topics/http/views/ _voir tutoriel Part 3 (version shortcut)_ https://docs.djangoproject.com/en/1.3/intro/tutorial03/

https://docs.djangoproject.com/en/1.3/topics/templates/

os.path.join(os.path.dirname(__file__), "templates"),
import os

_passer une variable au template_

_utiliser une variable :_

{{ var }}

_endroit où on code en logique en Python plus simple si explore interactivement..._

python manage.py shell

from recrutement.models import *
equipes = Equipe.objects.all()
for e in equipes: print e
e = equipes[0]
e.joueur_set.all()
j = Joueur.objects.get(id=1)
j.id
j = Joueur.objects.get(id=314)
e.id
joueurs = Joueur.objects.filter(equipe__nom__startswith='Pyth')

related_name = "joueurs"

e.joueurs.all()
e.joueurs.count()

_passer les variables pertinentes pour accueil_

_boucle for dans template :_

{% for e in equipes %}
{% endfor %}

PARTIE 3 : PROJET LIGUEMP PIMPÉ

Télécharger les sources du projet pimpé : http://montrealpython.org/r/attachments/8

Extraire (_sans clash de nom avec projet en cours_)

Pimpé? Quoi de neuf?

Héritage de templates

{% block main %}

{% extends "base.html" %}
{% block main %}

Fichiers statiques : CSS, images et js

https://docs.djangoproject.com/en/1.3/howto/static-files/

os.path.join(os.path.dirname(__file__), "static"),

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()

Connexion du user

LOGIN_REDIRECT_URL = "/"

URL avec paramètres

Refactoring du home

Admin pimpé : ModelAdmin

_héritent de ModelAdmin_

admin.site.register(Joueur, JoueurAdmin)

list_display
search_fields
list_filter

https://docs.djangoproject.com/en/1.3/ref/contrib/admin/

Charger données initiales : fixtures

https://docs.djangoproject.com/en/1.3/ref/django-admin/

python manage.py dumpdata > initial_data.json

python manage.py syncdb
no (pas créer user)
python manage.py loaddata fixtures/initial_data.json

PARTIE 4 : HANDS-ON : CRÉER L'APPLICATION SAISON POUR LE PROJET LIGUEMP

Ajouter modèle Match

Autre exercice : age d'un joueur

_ajouter une methode age() sur la classe Joueur utilisant la date de naissance_

CONCLUSION : POUR CONTINUER

http://groups.google.com/group/django-users

irc://irc.freenode.net/django

https://docs.djangoproject.com/en/dev/ref/contrib/

http://pypi.python.org/