fff

Combien de stagiaires suivront cette formation ?


Valider Annuler

Accueil    Formations    Informatique    Langages et développement    Développeur Python    Django - Développements Web en Python

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Objectifs de formation

A l'issue de cette formation, vous serez capable de :

  • Prendre en main le framework Django
  • Construire un site Web
  • Fournir une API REST utilisable pour les clients mobiles / front
  • Personnaliser Django pour votre besoin
  • Tester et déployer votre site en production.

Prérequis

Avoir des notions en Python ou bien dans un langage récent de programmation. Des notions en HTML / CSS / JavaScript est un plus.

Validez les prérequis

Afin de vérifier que vous disposez bien des prérequis nécessaires à cette formation, nous vous invitons à réaliser ce test.

Temps estimé : 4 minutes.

Passer le test

Public concerné

Développeurs Web et chefs de projets.

Programme

Jour 1 - Prise en main de Django

Introduction Python et Django

  • Programmer en Python
  • Historique de Django
  • Traitement d'une requête HTTP
  • Structure d'un projet Django
    • Fichiers
    • settings.py
    • Pattern MVT (Model View Template)
  • Naviguer dans la documentation de Django
  • Gérer un projet Django en CLI
Exemples de travaux pratiques (à titre indicatif)
  • Initialiser un environnement Django et configurer le serveur de développement local
    • Installer Django dans un environnement virtuel Python (via virtualenv ou venv)
    • Initialiser un projet Django, puis lancer le serveur de développement pour afficher une vue simple répondant à une requête HTTP avec un message "Hello, Django"

URL et vues

  • Routing des requêtes avec urls.py
  • Pattern matching dans les URL
  • Isolation des routes par application Django
  • Vues et réponse HTTP
  • Objets "requête / réponse"
Exemples de travaux pratiques (à titre indicatif)
  • Configurer le routage URL avec urls.py et créer des vues fonctionnelles
    • Créer une application Django avec des routes dynamiques qui gèrent des paramètres dans les URLs
    • Implémenter des vues fonctionnelles pour afficher des articles avec une URL du type /blog//

Templates

  • Charger un template dans une vue
  • Tags et filtres
  • Héritage de template
  • Ressource statique dans un template
  • Définir un tag / filtre personnalisé
Exemples de travaux pratiques (à titre indicatif)
  • Implémenter un système de templates avec héritage et inclusion de fichiers statiques
    • Configurer un base.html et utiliser l'héritage de templates pour plusieurs pages du site (Accueil, Contact)
    • Charger des fichiers statiques tels que des styles CSS et des images via le système de gestion des fichiers statiques de Django

Jour 2 - Interagir avec la base de données

Base de données et modèles

  • Découvrir l'ORM (Object Relational Mapper) Django
  • Définir un modèle
  • Définir les relations entre modèles
    • OneToOne
    • ForeignKey
    • ManyToMany
  • Gérer les migrations de la BDD (database)
  • CRUD (Create, Read, Update, Delete) sur les modèles
Exemples de travaux pratiques (à titre indicatif)
  • Modéliser un schéma de base de données relationnelles avec l'ORM Django
    • Définir plusieurs modèles représentant des entités de la bibliothèque (Livre, Auteur, Emprunt), avec des relations ForeignKey, OneToOne et ManyToMany
    • Gérer les migrations pour créer les tables correspondantes dans une base de données PostgreSQL ou SQLite

Requêtes SQL et QuerySet

  • Fonctionnement des QuerySet
  • Faire des requêtes QuerySet en utilisant le REPL
  • Requêtes complexes et relations inversées
Exemples de travaux pratiques (à titre indicatif)
  • Effectuer des requêtes complexes avec l'ORM Django et optimiser les performances
    • Utiliser les QuerySet pour effectuer des requêtes complexes comme la récupération de livres empruntés, avec des filtrages basés sur des champs relationnels (select_related et prefetch_related), et exploiter l'API de F() et Q() pour les requêtes conditionnelles

Lier ses modèles avec les vues

  • Charger un modèle dans une vue
  • Paramétrer une requête à partir d'une vue
  • Validation d'un modèle
  • Signaux et fonctions d'un modèle
Exemples de travaux pratiques (à titre indicatif)
  • Charger des modèles dans les vues et gérer le contexte de template
    • Intégrer les modèles dans des vues Django pour récupérer et afficher des données dans les templates, en utilisant le contexte de vue
    • Créer une page dynamique affichant les livres disponibles en base de données et permettre la navigation vers une vue détaillée

Opérations avancées sur les modèles

  • Requêtes en fonction avec le manager personnalisé
  • Ecrire ses requêtes SQL à la main
  • Faire des requêtes avancées
  • Gérer plusieurs BDD (databases)
  • Requêtes et transactions

Jour 3 - Gérer et afficher les données

Gestion des formulaires

  • Afficher et traiter un formulaire Django
  • Connecter un formulaire à un modèle
  • Vérifier et valider le contenu d'un formulaire
  • Ressources dans un formulaire
  • Gérer plusieurs formulaires avec un Formset
Exemples de travaux pratiques (à titre indicatif)
  • Construire des formulaires basés sur des modèles et valider les données
    • Créer un formulaire Django basé sur un modèle (ModelForm) pour gérer l'ajout d'un nouvel emprunt
    • Implémenter la validation côté serveur et gérer les erreurs d'entrée utilisateur

Administrateur Django

  • Installer le site d'administrateur
  • Personnaliser les listes et formulaires
  • Filtrer, trier, chercher avec l'administrateur
  • Ajouter des actions personnalisées
  • Ajouter du code JavaScript
  • Gérer les utilisateurs et les droits
Exemples de travaux pratiques (à titre indicatif)
  • Customiser l'interface d'administration avec des actions personnalisées et filtres avancés
    • Personnaliser l'admin Django pour les modèles Livre et Auteur, en ajoutant des filtres de recherche, des champs spécifiques dans les listes et des actions personnalisées comme "marquer un livre comme emprunté"

Structurer ses vues en classes

  • Principe de "Class View"
  • Requêtes HTTP, templates, variables de contexte
  • Afficher un modèle dans une Class View
  • Gérer un formulaire dans une Class View
  • Les mixins et les Class View
Exemples de travaux pratiques (à titre indicatif)
  • Implémenter des Class-Based Views (CBV) pour afficher et gérer des objets
    • Utiliser les vues génériques basées sur des classes (CBV) pour implémenter les opérations CRUD sur les livres (ListView, DetailView, CreateView, UpdateView, DeleteView)
    • Gérer les variables de contexte et la logique métier au sein des CBV

API REST avec Django REST Framework

  • Principes d'une API REST
  • Définir un endpoint REST avec DRF
  • Fonctionnement d'un routeur
  • Objet nested dans une API REST
  • Sérialisation de modèles et rendu format JSON / XML / MessagePack
  • Routing d'actions supplémentaires
Exemples de travaux pratiques (à titre indicatif)
  • Développer une API RESTful avec Django REST Framework (DRF)
    • Configurer Django REST Framework pour exposer une API qui gère les livres et les auteurs en utilisant des ViewSet et ModelSerializer
    • Créer des endpoints RESTful permettant la création, modification et suppression de livres en format JSON

Jour 4 - Packager un site en production

Notions avancées REST

  • Valider le contenu
  • Gérer les versions d'une API
  • Caching et ETag
  • Authentification et permissions d'un client
Exemples de travaux pratiques (à titre indicatif)
  • Implémenter la gestion des versions et de l'authentification sur une API REST
    • Mettre en place la gestion des versions pour l'API (via versioning dans DRF) et intégrer un mécanisme d'authentification basique (Token Auth ou OAuth2) pour restreindre l'accès à certaines parties de l'API

Tests avec Django et DRF

  • Mise en place de tests Python avec les TestCases
  • Tester avec un jeu de données en BDD
  • Client de test HTTP
  • Tester une API REST avec DRF
  • Tests unitaires, de transactions, avec un serveur Web
Exemples de travaux pratiques (à titre indicatif)
  • Ecrire des tests automatisés pour les vues et l'API REST
    • Implémenter des tests unitaires et fonctionnels pour valider le bon fonctionnement des vues et de l'API REST
    • Utiliser TestCase pour tester le comportement de l'API et s'assurer que les réponses HTTP sont correctes avec les données en base

Avoir un site en multilingue

  • Préparer le code pour l'internationalisation
  • Générer les traductions
  • Activer différentes langues dans Django
  • Traductions en JavaScript
Exemples de travaux pratiques (à titre indicatif)
  • Internationaliser et localiser l'application Django
    • Préparer l'application pour l'internationalisation (i18n) en configurant le support multilingue, générer les fichiers de traduction (.po) et permettre le basculement dynamique entre plusieurs langues (anglais, français...)

Configuration d'une application en production

  • Multi-configuration de base de données, flags
  • Provisionner une machine de développement avec Vagrant
  • Workflow avec Nginx et Gunicorn
  • Automatisation du déploiement avec Fabric et Ansible
  • Isoler son application avec Docker
Exemples de travaux pratiques (à titre indicatif)
  • Configurer et déployer l'application Django dans un environnement de production avec Docker
    • Utiliser Docker pour conteneuriser l'application Django, configurer Gunicorn comme serveur d'application WSGI, et utiliser Nginx comme serveur proxy
    • Automatiser le déploiement et la gestion de la configuration avec Ansible et Fabric

Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.

Modalités, méthodes et moyens pédagogiques

Formation délivrée en présentiel ou distanciel* (blended-learning, e-learning, classe virtuelle, présentiel à distance).

Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).

Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :

  • Ordinateurs Mac ou PC (sauf pour certains cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
  • Environnements de formation installés sur les postes de travail ou en ligne
  • Supports de cours et exercices

En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatiques...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.

* nous consulter pour la faisabilité en distanciel

** ratio variable selon le cours suivi

Modalités d’évaluation des acquis

  • En cours de formation, par des études de cas ou des travaux pratiques
  • Et, en fin de formation, par un questionnaire d'auto-évaluation

Accessibilité de la formation

Le groupe M2i s'engage pour faciliter l'accessibilité de ses formations. Les détails de l'accueil des personnes en situation de handicap sont consultables sur la page Accueil et Handicap.

Modalités et délais d’accès à la formation

Les formations M2i sont disponibles selon les modalités proposées sur la page programme. Les inscriptions sont possibles jusqu'à 48 heures ouvrées avant le début de la formation. Dans le cas d'une formation financée par le CPF, ce délai est porté à 11 jours ouvrés.

Partager cette formation Télécharger au format pdf Ajouter à mes favoris

Vous souhaitez suivre cette formation ?

Cette formation est disponible en présentiel ou en classe à distance, avec un programme et une qualité pédagogique identiques.

Tarif : à partir de 2 440 € HT.

Choisissez la modalité souhaitée pour vous inscrire :

Formation disponible en intra-entreprise

Votre société a besoin d'une offre personnalisée ? Contactez-nous

string(21) ""
string(21) ""
string(21) ""
string(21) ""
string(21) ""
string(21) ""

Découvrez les autres formations susceptibles de vous intéresser :

Faites-nous part de votre projet de formation, nous sommes là pour vous guider.

Contactez-nous