Django - Développements Web en Python

Prendre en main le framework Django pour construire un site Web.

Objectifs

  • 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.

Pour qui

  • Développeurs Web et chefs de projets.

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.

Contenu de la formation

Django – Développements Web en Python

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
 

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
 

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
 

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
 

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

Nos prochaines sessions