Description
Le programme de formation "Introduction à Python et Django" vise à initier les participants à la programmation en Python et à la création d'applications web avec Django. Il couvre des notions essentielles telles que la structure d'un projet Django, le routage des requêtes, la gestion des bases de données via l'ORM, et la création d'API REST avec Django Rest Framework. Destiné aux développeurs débutants et intermédiaires, ce cursus permet d'acquérir des compétences pratiques en développement web, gestion des formulaires, tests, et déploiement d'applications.
Objectifs
- Savoir interfacer Django avec une base de données
- Développer des vues dynamiques
- Développer des templates
- Gérer les formulaires Django
- Mettre en oeuvre les principales fonctions avancées
Récapitulatif
Public
Développeurs Web
Prérequis
Connaissances des bases du langage Python et technologies Web (HTML, JavaScript...)
Méthodes et modalités pédagogiques
Formation réalisée en Présentiel, Distanciel ou Dual-Learning selon la formule retenue.
Moyens et supports pédagogiques
Mise à disposition d'un poste de travail sur nos formations en Présentiel.
Mise à disposition de nos environnements de visio sur nos formations en Distanciel
Remise d'une documentation pédagogique numérique pendant la formation
La formation est constituée d'apports théoriques, d'exercices pratiques et de réflexions
Dans le cas d'une formation sur site Entreprise, le client s'engage à avoir toutes les ressources pédagogiques nécessaires (salle, équipements, accès internet, TV ou Paperboard...) au bon déroulement de l'action de formation conformément aux prérequis indiqués dans le programme de formation
Modalités de suivi et d'évaluations
Auto-positionnement des stagiaires avant la formation
Émargement des stagiaires et formateur par 1/2 journée
Exercices de mise en pratique ou quiz de connaissances tout au long de la formation permettant de mesurer la progression des stagiaires
Auto-évaluation des acquis de la formation par les stagiaires
Questionnaire de satisfaction à chaud et à froid à l'issue de la formation
Programme détaillé
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
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"
- 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é
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
Requêtes SQL et queryset
- Fonctionnement des QuerySet
- Faire des requêtes QuerySet en utilisant le REPL
- Requêtes complexes et relations inversées
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
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
Gérer les 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
Administrer 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
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
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
Notions avancées REST
- Valider le contenu
- Gérer les versions d'une API
- Caching et ETag
- Authentification et permissions d'un client
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
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
Configurer 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