13. Annexes
13.1. Installation de Python
Les exemples et l'étude de cas demandent [Python] 3.12 ou une version plus récente ([Django] 6.1 l'exige). Ils ont été testés avec la version 3.13.
Sous [Windows], on télécharge l'installateur sur la page python.org/downloads (le bouton Download Python 3.13.x, ou une version plus récente). Au premier écran de l'installateur, on coche la case Add python.exe to PATH, qui permet de taper [python] dans n'importe quelle console, puis Install Now. L'installateur installe aussi [pip], le module [venv], et le lanceur [py] ([py -3.13] lance une version précise, quand plusieurs sont installées). Sous [Windows] 10 et 11, taper [python] sans l'avoir installé ouvre le Microsoft Store : c'est un raccourci du système, que l'on peut désactiver (Paramètres / Applications / Paramètres avancés des applications / Alias d'exécution d'application).
Sous [macOS], on utilise l'installateur de python.org, ou le gestionnaire de paquets [Homebrew] : [brew install python@3.13]. Sous [Linux], [Python] est déjà présent, mais le module [venv] et [pip] sont souvent des paquets à part. Sous [Ubuntu] 24.04 (dont la version de [Python] est la 3.12) :
Sous [macOS] et [Linux], les commandes s'appellent [python3] et [pip3] ; dans un environnement virtuel activé, [python] et [pip] suffisent. On vérifie l'installation dans une nouvelle console :
La première commande doit afficher un numéro de version égal ou supérieur à 3.12 (par exemple [Python 3.13.7]).
13.2. pip et les environnements virtuels
[pip] est le gestionnaire de bibliothèques de [Python]. Il télécharge les bibliothèques depuis le dépôt [PyPI] (pypi.org) : il faut une connexion Internet lors de l'installation. Derrière un proxy d'entreprise, on indique le proxy par les variables d'environnement [HTTP_PROXY] et [HTTPS_PROXY], ou par l'option [--proxy] de [pip].
Un environnement virtuel est un dossier qui contient une copie légère de l'interpréteur [Python] et ses propres bibliothèques : chaque projet a les siennes, dans les versions qu'il demande, sans toucher à l'installation de [Python] ni aux autres projets. Les commandes utiles, dans le dossier d'un projet (celui qui contient [requirements.txt]) :
Sous [Windows], [PowerShell] refuse parfois d'exécuter le script d'activation (« l'exécution de scripts est désactivée sur ce système ») : la commande [Set-ExecutionPolicy -Scope CurrentUser RemoteSigned] l'autorise pour l'utilisateur courant. On peut aussi se passer de l'activation, en appelant directement l'interpréteur de l'environnement : [.venv\Scripts\python manage.py runserver].
Le dossier [.venv] ne se copie pas d'une machine à l'autre (il contient des chemins absolus, et des programmes propres au système) : on le recrée par les commandes ci-dessus. C'est pourquoi il ne fait pas partie des codes du cours. Le dossier [exemples] a son environnement, partagé par les 28 exemples ; l'étude de cas a le sien.
La bibliothèque [mysqlclient], le pilote [MySQL] (exemple 28 et étude de cas), est écrite en C. Sous [Windows], [pip] télécharge une version déjà compilée : rien à faire. Sous [Linux] et [macOS], [pip] la compile, et a besoin pour cela des fichiers de développement de [MySQL] et d'un compilateur :
Sans eux, [pip install -r requirements.txt] échoue sur [mysqlclient], avec un message qui parle de [pkg-config] ou de [mysql_config].
13.3. Installation de Visual Studio Code
[Visual Studio Code] se télécharge sur code.visualstudio.com. On y ajoute trois extensions (menu Affichage / Extensions) :
- Python (de Microsoft) : l'exécution et le débogage du code [Python], la gestion des environnements virtuels. Elle installe avec elle l'extension Python Debugger ;
- Pylance (de Microsoft, installée elle aussi avec l'extension Python) : la complétion, la navigation dans le code (y compris celui de [Django], dans le dossier [.venv]), le signalement des erreurs, la vérification des annotations de type ;
- Django (de Baptiste Darthenay) : la coloration syntaxique et des raccourcis pour les gabarits de [Django] (fichiers [.html] du dossier [templates]).
On ouvre le dossier [exemples], ou le dossier de l'étude de cas (menu Fichier / Ouvrir le dossier), puis on choisit l'interpréteur de l'environnement virtuel du dossier (palette des commandes, Ctrl+Maj+P, Python: Select Interpreter, puis celui de [.venv]). Le terminal intégré (menu Terminal / Nouveau terminal) active alors lui-même l'environnement, et permet de lancer les applications, et les commandes [python manage.py ...], sans quitter l'éditeur.
Pour exécuter une application pas à pas, on crée une configuration de débogage (menu Exécuter / Ajouter une configuration, puis Python Debugger et Django) : l'éditeur lance [manage.py runserver] sous le contrôle du débogueur, et s'arrête sur les points d'arrêt placés dans les vues.
13.4. Installation de MySQL avec Laragon
[Laragon] installe sous [Windows] un serveur [MySQL] prêt à l'emploi, avec l'outil d'administration [HeidiSQL] (cf. « Installation de Laragon », dans l'introduction). Après installation :
- le bouton Démarrer tout lance le serveur [MySQL], sur le port 3306 ;
- l'utilisateur [root] n'a pas de mot de passe : ce sont les valeurs du réglage [DATABASES] de l'exemple 28 ([config/settings.py]), et des variables [DB_USER] et [DB_PASSWORD] du fichier [.env] de l'étude de cas ;
- le bouton Base de données ouvre [HeidiSQL], où le menu Fichier / Exécuter un fichier SQL exécute les scripts [dbpersonnes.sql] (exemple 28) et [dbrdvmedecins2.sql] (étude de cas).
Sous [Linux] ou [macOS], on installera [MySQL] ou [MariaDB] avec le gestionnaire de paquets du système, et l'on exécutera les scripts avec le client en ligne de commande [mysql] ([mysql -u root < database/dbrdvmedecins2.sql]). Le pilote [mysqlclient] et le moteur [MySQL] de [Django] fonctionnent avec les deux, sans aucun réglage. Sous [Linux], le compte [root] de [MariaDB] est souvent configuré pour ne se connecter que par le compte système [root] ([sudo mysql]) : on crée alors un utilisateur pour les applications :
et on l'indique aux applications : les clés [USER] et [PASSWORD] du réglage [DATABASES] pour l'exemple 28, les lignes [DB_USER=cours] et [DB_PASSWORD=cours] du fichier [.env] pour l'étude de cas.
13.5. Installation de curl
[curl] est livré avec [Windows] 10 et 11, [macOS] et la plupart des distributions [Linux]. Sous [PowerShell], il faut taper [curl.exe] et non [curl] : dans les anciennes versions de [PowerShell], [curl] est un alias d'une autre commande ([Invoke-WebRequest]), dont les options sont différentes. Dans l'invite de commandes de [Windows] ([cmd]), les guillemets d'une chaîne JSON s'écrivent [\"] (exemple 11), et une URL qui contient des [&] doit être entourée de guillemets doubles.
13.6. L'outil django-admin
[Django] installe une commande, [django-admin], qui n'est pas nécessaire pour suivre ce document (les exemples sont fournis tout prêts), mais que l'on utilise pour commencer un nouveau projet. Le fichier [manage.py] de chaque projet est un [django-admin] qui connaît en plus les réglages du projet : dans un projet, on tape [python manage.py] plutôt que [django-admin]. Les commandes les plus utiles :
Le point final de la commande [startproject] crée le projet dans le dossier courant (sans lui, dans un nouveau dossier [config]). Une application créée par [startapp] doit être ajoutée à la liste [INSTALLED_APPS] des réglages. La commande [inspectdb] est une aide précieuse pour une base existante, comme celle de l'étude de cas : elle lit les tables, et écrit un premier jet des modèles, avec [managed = False] ; il reste à nommer les relations, à choisir les types, et à ajouter les méthodes. Les commandes [makemigrations] et [migrate], qui créent et font évoluer les tables d'après les modèles, n'ont pas servi dans ce document : ses bases sont créées par des scripts SQL, partagés avec les autres versions de l'application.