Django : modèle

 👑Créer un projet Django pour modéliser les personnes, les professeurs, les étudiants et les cours avec ForeignKey et ManyToManyField, puis tester les relations et les requêtes dans le shell.

Découvrir l’interface admin pour gérer les données, personnaliser l’affichage et les recherches, puis faire évoluer les modèles pour distinguer les rôles.


1. Installer Django, créer le projet et l’application.

2. Définir les modèles et les relations entre personnes et cours.

3. Effectuer les migrations et tester les données dans le shell.

4. Explorer les relations inverses, les filtres et les annotations.

5. Configurer l’interface admin : affichage, recherche, filtres et sélection des étudiants.

6. Faire évoluer la modélisation pour distinguer professeurs et étudiants, avec des modèles séparés ou un système de rôles.


Lecture → Modélisation avec Django

Les bases du DOM : revision

L'idée est de transformer une donnée JavaScript en élément HTML affiché dans la page.   



Entrainement au DS

 const films = [

  { titre: "Inception", genre: "SF", note: 9, annee: 2010 },
  { titre: "Titanic", genre: "Romance", note: 8, annee: 1997 },
  { titre: "The Godfather", genre: "Crime", note: 10, annee: 1972 },
  { titre: "Pulp Fiction", genre: "Crime", note: 9, annee: 1994 },
  { titre: "Goodfellas", genre: "Crime", note: 8, annee: 1990 },
  { titre: "The Shawshank Redemption", genre: "Drame", note: 10, annee: 1994 },
  { titre: "The Dark Knight", genre: "Action", note: 9, annee: 2008 },
  { titre: "Interstellar", genre: "SF", note: 10, annee: 2014 },
  { titre: "Amélie", genre: "Comédie", note: 7, annee: 2001 },
  { titre: "Avatar", genre: "SF", note: 7, annee: 2009 },
];

Trouvez :
La décennie avec la note totale la plus élevée est 1990 avec un total de 35.

Formulaire → Form → ModelForm → Generic Views

 


Formulaire HTML manuel

On construit un formulaire HTML à la main et on traite les données soi-même dans la vue.

Django → vers generic : etape 1


Form (forms.Form)

On remplace le formulaire HTML manuel par une classe Form qui gère la validation et la récupération des données.

Django → vers generic : etape 2 (Form)


ModelForm (forms.ModelForm)

On utilise un ModelForm pour générer automatiquement le formulaire à partir du modèle et créer l’objet en base via form.save().

Django → vers generic : etape 3 (ModelForm)


Generic Views (ListView / CreateView)

On remplace les vues manuelles par des vues génériques qui automatisent entièrement le CRUD (liste, création, modification, suppression).

Django → vers generic : etape 4 (generic View)


https://github.com/dupontdenis/Generic-CRUD.git


Les methodes sur Object

Découvrez groupBy ! 

→ en Action

Anim the dom

 Code pour comprendre le recursif dans le parcours du DOM



En action  → https://dupontdenis.github.io/AnimDOM/


Code → https://github.com/dupontdenis/AnimDOM.git

Les générateurs ! un must

En L1, j'avais déjà utilisé les générateurs pour illustrer les algorithmes → comprendre les algo de base

Comment marche un générateur ? 

Les générateurs en action : → Learn

Go back to : todo list

 Learn by yourself : 📋Maitriser les listes de tâches



Django : API REST

 


Je viens de vous ecrire une API REST django ! 

Nous devrions decouvrir le code dans 2 semaines ! 

Django projet

Rappels : 

SQLite3
    Let's start ! 
Python : Learn by yourself
    Let's start !


Django : lien


Django model/ shell



Projet Airport : lien





Projets : Django

0° Blog


1°🛩️Airport


Objectif : intégrations des passagers aux vols.

------------------- no time left ! 

II partie


3° SPA



Python

Evaluez votre niveau en python ! 🥷🏼python !




Pour info : 

🪛 est équivalent à : 
🚀



Autre exemple

  1. import time

  2. def timer(f):
  3.     def wrapper(*args, **kwargs):
  4.         start = time.time()
  5.         result = f(*args, **kwargs)
  6.         end = time.time()
  7.         print(f"Temps : {end - start:.4f}s")
  8.         return result
  9.     return wrapper

  10. @timer
  11. def slow():
  12.     time.sleep(1)

  13. slow()
#Temps : 1.0006s


Learn by yourself



@debug def add(a, b): ... ↓ équivaut à ↓ def add(a, b): ... add = debug(add)
@debug def add(a, b): ... ↓ équivaut à ↓ def add(a, b): ... add = debug(add)@debug
def add(a, b): ... ↓ équivaut à ↓ def add(a, b): ... add = debug(add)