Django : Frontend : interfaces publiques d'un site


INTRODUCTION


PARTIE 1 : RAPPELS ET AMORCE DU PROJET

Rappels

Amorce du projet

  1. Prendre ces sources avec jeu de données (recommandé):

    • superuser = admin/admin

    • Projet carto : Django 1.4
    • Projet carto : Django 1.1.1

  2. ou repartir de votre code du projet carto de l'atelier Backend si vous l'avez suivi avant

  3. ou partir à zéro en codant le projet :
    • django-admin.py startproject carto
      • Django 1.1.1 :
        • django-admin startproject carto
      cd carto
      python manage.py startapp annuaire
    • coder les modèles de l'app annuaire : annuaire/models.py :
      • from django.db import models
        
        class Etablissement(models.Model):
            nom = models.CharField(max_length=255)
            sigle = models.CharField(max_length=50)    
            
            def __unicode__(self):
                return self.nom
        
        class Personne(models.Model):
            nom = models.CharField(max_length=255)
            prenom = models.CharField(max_length=255, blank=True, null=True)
            date_naissance = models.DateField(blank=True, null=True)
            
            universite = models.ForeignKey('Etablissement', blank=True, null=True)
            
            def __unicode__(self):
                return "%s %s" % (self.nom.upper(), self.prenom)
    • activer l'admin dans urls.py :
      • # ...
        
        from django.contrib import admin
        admin.autodiscover()
        
        urlpatterns = patterns('',
            # ...
            url(r'^admin/', include(admin.site.urls)),
        )
    • associer les modèles de l'app annuaire à l'admin : créer annuaire/admin.py :
      • from django.contrib import admin
        from annuaire.models import *
        
        admin.site.register(Etablissement)
        admin.site.register(Personne)
    • configurer le projet dans settings.py :
      • DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
                'NAME': 'carto.db',                      # Or path to database file if using sqlite3.
                 # ...
            }
        }
        
        INSTALLED_APPS = (
            # ...
            'annuaire',
            'django.contrib.admin',
            # ...
        )
    • créer les tables dans la DB
      • python manage.py syncdb
    • saisir un jeu de données dans l'admin : http://127.0.0.1:8000


PARTIE 2 : FRONTEND (INTERFACES PUBLIQUES)

Frontend : présenter les données dans les interfaces publiques

Frontend vs Backend

Flux d'info de requête à réponse

Utilisation de variables

ORM : exploration interactive

ORM : utilisation réelle

Héritage de templates

URL avec paramètres

Frontend pimpé

Télécharger les sources finales du projet pimpé :

Pimpé? Quoi de neuf?

Fichiers statiques : CSS, images et js

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

Connexion du user

EXERCICE

Ajouter application Formation

Créer l'application formation pour le projet répertoire

Ajouter modèle Formation

Durée d'une Formation

CONCLUSION : POUR CONTINUER

Ateliers/Django/Frontend/Support (dernière édition le 2012-08-31 16:43:35 par DavinBaragiotta)