From b98cc1ef3b7b363be142bd0c1fbb9aea71c9ea2c Mon Sep 17 00:00:00 2001 From: Fred Date: Tue, 15 Dec 2020 20:55:13 +0100 Subject: [PATCH] Review django installation part --- CONVENTIONS.md | 14 - .../diagrams/django-project-vs-apps.drawio | 1 + .../images/django/django-project-vs-apps.png | Bin 0 -> 95264 bytes source/images/django/manage-runserver.png | Bin 0 -> 36537 bytes source/part-1-workspace/django/_index.adoc | 273 ++++++++++++++++-- source/part-1-workspace/venvs.adoc | 124 +------- 6 files changed, 258 insertions(+), 154 deletions(-) delete mode 100644 CONVENTIONS.md create mode 100644 source/images/diagrams/django-project-vs-apps.drawio create mode 100644 source/images/django/django-project-vs-apps.png create mode 100644 source/images/django/manage-runserver.png diff --git a/CONVENTIONS.md b/CONVENTIONS.md deleted file mode 100644 index cc0a3c2..0000000 --- a/CONVENTIONS.md +++ /dev/null @@ -1,14 +0,0 @@ -# Conventions - -``` -================= -Titre de niveau 1 -================= - -***************** -Titre de niveau 2 -***************** - -Titre de niveau 3 -================= -``` \ No newline at end of file diff --git a/source/images/diagrams/django-project-vs-apps.drawio b/source/images/diagrams/django-project-vs-apps.drawio new file mode 100644 index 0000000..1acb3cf --- /dev/null +++ b/source/images/diagrams/django-project-vs-apps.drawio @@ -0,0 +1 @@ +5VdNc5swEP01PtYDyCbk2DpOemhn2jLTNkcFLaBGRoxYjOmvrwCJjyHxtJ2xE08uoH27K2nfk5BYkM3ucKdonn6WDMTCc9hhQW4Wnuc6ga9fDVJ3yLVvgERxZoIGIOS/wWYatOQMikkgSimQ51MwklkGEU4wqpSspmGxFNNRc5rADAgjKuboD84w7dDAuxrwj8CT1I7s+tedZ0dtsKmkSCmT1Qgi2wXZKCmxa+0OGxANeZaXLu/2GW8/MQUZ/k3C19p1v2RhGYS3wTosN+q79+2dKaPA2hYMTNdvTKkwlYnMqNgO6IcB/SRlrsNcDf4CxNrIR0uUGkpxJ4wXDhx/6raz9NbGvB+5bprl4lijtkaGqu6y1ta8H/uGtNayecUjYJSa7qNS7YEZoyu2qfBZDg1UyFJFcIQ4uxapSgCPxHm90nqLgNyBnqnOUyAo8v10HtSs1aSPG+TUDaPoP6gbnFvdNyYueUlxr88t7tUbU3f1kuqafvdUlGaku4rHONO8SjlCmNO24kqfwVP1JoQqWWasZzTmQmykkKrtiDAKQRw1KajkI4w8fhTAQ9xrsAeFcDiuwpw1k7A2h6G5DayMWQ1H64oYLB0dq75zIpq9Gc3v81zwSCsss+baAs0dBIreLPSzRC54QRFKVZxOkDiOvehJQZj/4K/9kwjiPqGIe1ZF7MXvkg4t9zV81sgl3EjI/+w3vdmwbbReTURKOV78zvOc17b1VjNxlsvlpdNMzviF0+bwP9f6Rn/FZPsH \ No newline at end of file diff --git a/source/images/django/django-project-vs-apps.png b/source/images/django/django-project-vs-apps.png new file mode 100644 index 0000000000000000000000000000000000000000..961aaccae69fc8bb1f6dd98683944a16ee60918a GIT binary patch literal 95264 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ɌN^(fDuW6vgf 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

#fc1h>x7KYgIn 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�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 KDSi6J|Nj6oATc%o literal 0 HcmV?d00001 diff --git a/source/part-1-workspace/django/_index.adoc b/source/part-1-workspace/django/_index.adoc index 704fa24..2483ec1 100644 --- a/source/part-1-workspace/django/_index.adoc +++ b/source/part-1-workspace/django/_index.adoc @@ -3,48 +3,227 @@ === Travailler en isolation -Nous allons aborder la gestion et l'isolation des dépendances. Même dans le cas de petits projets, il est déconseillé de s'en passer. Cela évite les déploiements effectués à l'arrache à grand renfort de `sudo` et d'installation globale de dépendances. - +Nous allons aborder la gestion et l'isolation des dépendances. Cette section est aussi utile pour une personne travaillant seule, que pour transmettre les connaissances à un nouveau membre de l'équipe ou pour déployer l'application elle-même. -Cette pratique est cependant fortement déconseillée pour plusieurs raisons: +Il en était déjà question au deuxième point des 12 facteurs: même dans le cas de petits projets, il est déconseillé de s'en passer. +Cela évite les déploiements effectués à l'arrache à grand renfort de `sudo` et d'installation globale de dépendances, pouvant potentiellement occasioner des conflits entre les applications déployées: . Il est tout à fait envisagable que deux applications différentes soient déployées sur un même hôte, et nécessitent chacune deux versions différentes d'une même dépendance. -. Pour la reproductibilité d'un environnement spécifique. Cela évite notamment les réponses type "Ca juste marche chez moi", puisque la construction d'un nouvel environnement fait partie intégrante du processus de construction et de la documentation du projet; grace à elle, on a la possibilité de construire un environnement sain et d'appliquer des dépendances identiques, quelle que soit la machine hôte. +. Pour la reproductibilité d'un environnement spécifique, cela évite notamment les réponses type "Ca juste marche chez moi", puisque la construction d'un nouvel environnement fait partie intégrante du processus de construction et de la documentation du projet; grâce à elle, nous avons la possibilité de construire un environnement sain et d'appliquer des dépendances identiques, quelle que soit la machine hôte. image::images/it-works-on-my-machine.jpg[] + +Dans la suite de ce chapitre, nous allons considérer deux projets différents: + +. Gwift, une application permettant de gérer des listes de souhaits +. Khana, une application de suivi d'apprentissage pour des élèves ou étudiants. + +==== Environnement virtuel + Depuis la version 3.5 de Python, le module `venv` est https://docs.python.org/3/library/venv.html[la manière recommandée] pour créer un environnement virtuel. -Il existe plusieurs autres modules permettant d'arriver au même résultat, avec quelques avantages et inconvénients pour chacun d'entre eux. +NOTE: Il existe plusieurs autres modules permettant d'arriver au même résultat, avec quelques avantages et inconvénients pour chacun d'entre eux. Le plus prometteur d'entre eux est https://python-poetry.org/[Poetry], qui dispose d'une interface en ligne de commande plus propre et plus moderne que ce que PIP propose. -NOTE: parler ici de poetry, pip, pipenv et rebondir sur le point 2 des 12 facteurs. +Pour créer un nouvel environnement, vous aurez donc besoin: -Comme on l'a vu ci-dessus, `django-admin` permet de créer un nouveau projet. On fait ici une distinction entre un **projet** et une **application**: +. D'une installation de Python - https://www.python.org/ +. D'un terminal - voir le point <<../environment/_index.adoc#un-terminal,Un terminal>> - * **Projet**: ensemble des applications, paramètres, pages HTML, middlwares, dépendances, etc., qui font que votre code fait ce qu'il est sensé faire. - * **Application**: *contexte* éventuellement indépendant, permettant d'effectuer une partie isolée de ce que l'on veut faire. -Pour `gwift`, on va notamment avoir +NOTE: J'ai pour habitude de conserver mes projets dans un répertoire `~/Sources/` et mes environnements virtuels dans un répertoire `~/.venvs/`. +Cette séparation évite que l'environnement virtuel ne se trouve dans le même répertoire que les sources, ou ne soit accidentellement envoyé vers le système de gestion de versions. +Dans la suite de ce chapitre, je considérerai ces mêmes répertoires, mais n'hésitez pas à les modifier. + +Pur créer notre répertoire de travail et notre environnement virtuel, exécutez les commandes suivantes: + +[source,bash] +---- +mkdir ~/.venvs/ +python -m venv ~/.venvs/gwift-venv +---- + +Ceci aura pour effet de créer un nouveau répertoire (`~/.venvs/gwift-env/`), dans lequel vous trouverez une installation complète de l'interpréteur Python. +Votre environnement virtuel est prêt, il n'y a plus qu'à indiquer que nous souhaitons l'utiliser, grâce à l'une des commandes suivantes: + +[source,bash] +---- +# GNU/Linux, macOS +source ~/.venvs/gwift-venv/bin/activate + +# MS Windows, avec Cmder +~/.venvs/gwift-venv/Scripts/activate.bat + +# Pour les deux +(gwift-env) fred@aerys:~/Sources/.venvs/gwift-env$ <1> +---- +<1> Le terminal signale que nous sommes bien dans l'environnement `gwift-env`. + +A présent que l'environnement est activé, tous les binaires de cet environnement prendront le pas sur les binaires du système. +De la même manière, une variable `PATH` propre est définie et utilisée, afin que les librairies Python y soient stockées. +C'est donc dans cet environnement virtuel que nous retrouverons le code source de Django, ainsi que des librairies externes pour Python une fois que nous les aurons installées. + +Pour sortir de l'environnement virtuel, exécutez la commande `deactivate`. +Si vous pensez ne plus en avoir besoin, supprimer le dossier. +Si nécessaire, il suffira d'en créer un nouveau. + +Pour gérer des versions différentes d'une même librairie, il nous suffit de jongler avec autant d'environnements que nécessaires. Une application nécessite une version de Django inférieure à la 2.0 ? On crée un environnement, on l'active et on installe ce qu'il faut. + +Cette technique fonctionnera autant pour un poste de développement que sur les serveurs destinés à recevoir notre application. + +NOTE: Par la suite, nous considérerons que l'environnement virtuel est toujours activé, même si `gwift-env` n'est pas indiqué. + + +==== Gestion des dépendances, installation de Django et création d'un nouveau projet + +Comme nous en avons déjà discuté, PIP est la solution que nous avons choisie pour la gestion de nos dépendances. +Pour installer une nouvelle librairie, vous pouvez simplement passer par la commande `pip install `. +Dans le cas de Django, et après avoir activé l'environnement, nous pouvons à présent y installer Django. +Comme expliqué ci-dessus, la librairie restera indépendante du reste du système, et ne polluera aucun autre projet. nous exécuterons donc la commande suivante: + +[source,bash] +---- +$ source ~/.venvs/gwift-env/bin/activate # ou ~/.venvs/gwift-env/Scrips/activate.bat pour Windows. +$ pip install django +Collecting django + Downloading Django-3.1.4 +100% |################################| +Installing collected packages: django +Successfully installed django-3.1.4 +---- + +IMPORTANT: Ici, la commande `pip install django` récupère la *dernière version connue disponible dans les dépôts https://pypi.org/* (sauf si vous en avez définis d'autres. Mais c'est hors sujet). +Nous en avons déjà discuté: il est important de bien spécifier la version que vous souhaitez utiliser, sans quoi vous risquez de rencontrer des effets de bord. + +L'installation de Django a ajouté un nouvel exécutable: `django-admin`, que l'on peut utiliser pour créer notre nouvel espace de travail. +Par la suite, nous utiliserons `manage.py`, qui constitue un *wrapper* autour de `django-admin`. + +Pour démarrer notre projet, nous lançons `django-admin startproject gwift`: + +[source,bash] +---- +$ django-admin startproject gwift +---- + +Cette action a pour effet de créer un nouveau dossier `gwift`, dans lequel nous trouvons la structure suivante: + +[source,bash] +---- +$ tree gwift +gwift +├── gwift +| |── asgi.py +│   ├── __init__.py +│   ├── settings.py +│   ├── urls.py +│   └── wsgi.py +└── manage.py +---- + + +C'est dans ce répertoire que vont vivre tous les fichiers liés au projet. Le but est de faire en sorte que toutes les opérations (maintenance, déploiement, écriture, tests, ...) puissent se faire à partir d'un seul point d'entrée. + +L'utilité de ces fichiers est définie ci-dessous: + + * `settings.py` contient tous les paramètres globaux à notre projet. + * `urls.py` contient les variables de routes, les adresses utilisées et les fonctions vers lesquelles elles pointent. + * `manage.py`, pour toutes les commandes de gestion. + * `asgi.py` contient la définition de l'interface https://en.wikipedia.org/wiki/Asynchronous_Server_Gateway_Interface[ASGI], le protocole pour la passerelle asynchrone entre votre application et le serveur Web. + * `wsgi.py` contient la définition de l'interface https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface[WSGI], qui permettra à votre serveur Web (Nginx, Apache, ...) de faire un pont vers votre projet. + +NOTE: Indiquer qu'il est possible d'avoir plusieurs structures de dossiers et qu'il n'y a pas de "magie" derrière toutes ces commandes. + +Tant que nous y sommes, nous pouvons ajouter un répertoire dans lequel nous stockerons les dépendances et un fichier README: + +[source,bash] +---- +$ mkdir requirements +$ touch README.md +---- + + +[source,bash] +---- +(gwift) fred@aerys:~/Sources$ tree gwift +gwift +├── gwift +│   ├── asgi.py +│   ├── __init__.py +│   ├── settings.py +│   ├── urls.py +│   └── wsgi.py +├── requirements <1> +├── README.md <2> +└── manage.py +---- +<1> Ici +<2> Et là + + + +Comme nous venons d'ajouter une dépendance à notre projet, profitons-en pour créer un fichier reprenant tous les dépendances de notre projet. +Celles-ci sont normalement placées dans un fichier `requirements.txt`. +Dans un premier temps, ce fichier peut être placé directement à la racine du projet, mais on préférera rapidement le déplacer dans un sous-répertoire spécifique (`requirements`), afin de grouper les dépendances en fonction de leur environnement de destination: + + * `base.txt` + * `dev.txt` + * `production.txt` + +Au début de chaque fichier, il suffit d'ajouter la ligne `-r base.txt`, puis de lancer l'installation grâce à un `pip install -r `. +De cette manière, il est tout à fait acceptable de n'installer `flake8` et `django-debug-toolbar` qu'en développement par exemple. +Dans l'immédiat, nous allons ajouter `django` dans une version strictement inférieure à la version 3.2 dans le fichier `requirements/base.txt`. + +[source,bash] +---- +$ echo 'django<3.2' > requirements/base.txt +$ echo '-r base.txt' > requirements/prod.txt +$ echo '-r base.txt' > requirements/dev.txt +---- + +IMPORTANT: Prenez directement l'habitude de spécifier la version ou les versions compatibles: les librairies que vous utilisez comme dépendances évoluent, de la même manière que vos projets. +Pour être sûr et certain le code que vous avez écrit continue à fonctionner, spécifiez la version de chaque librairie de dépendances. +Entre deux versions d'une même librairie, des fonctions sont cassées, certaines signatures sont modifiées, des comportements sont altérés, etc. Il suffit de parcourir les pages de _Changements incompatibles avec les anciennes versions dans Django_ https://docs.djangoproject.com/fr/3.1/releases/3.0/[(par exemple ici pour le passage de la 3.0 à la 3.1)] pour réaliser que certaines opérations ne sont pas anodines, et que sans filet de sécurité, c'est le mur assuré. +Avec les mécanismes d'intégration continue et de tests unitaires, nous verrons plus loin comment se prémunir d'un changement inattendu. + + +=== Django + +Comme nous l'avons vu ci-dessus, `django-admin` permet de créer un nouveau projet. +Nous faisons ici une distinction entre un **projet** et une **application**: + + * *Un projet* représente l'ensemble des applications, paramètres, pages HTML, middlewares, dépendances, etc., qui font que votre code fait ce qu'il est sensé faire. + * *Une application* est un contexte d'exécution, idéalement autonome, d'une partie du projet. + +Pour `gwift`, nous aurons: + +.Django Projet vs Applications +image:images/django/django-project-vs-applications.png[] . une première application pour la gestion des listes de souhaits et des éléments, . une deuxième application pour la gestion des utilisateurs, . voire une troisième application qui gérera les partages entre utilisateurs et listes. -On voit bien ici le principe de **contexte**: l'application viendra avec son modèle, ses tests, ses vues et son paramétrage. Elle pourra éventuellement être réutilisée dans un autre projet. C'est en ça que consistent les https://www.djangopackages.com/[paquets Django] déjà disponibles: ce sont simplement de petites applications empaquetées pour être réutilisées (eg. https://github.com/tomchristie/django-rest-framework[Django-Rest-Framework], https://github.com/django-debug-toolbar/django-debug-toolbar[Django-Debug-Toolbar], ...). +Nous voyons également que la gestion des listes de souhaits et éléments aura besoin de la gestion des utilisateurs - elle n'est pas autonome -, tandis que la gestion des utilisateurs n'a aucune autre dépendance qu'elle-même. -NOTE: analyser la structure de ces paquets et comparer avec la structure finale de l'environnement. -=== Gestion +Nous pouvons clairement visualiser le principe de **contexte** pour une application: celle-ci viendra avec son modèle, ses tests, ses vues et son paramétrage. +Elle pourra éventuellement être réutilisée dans un autre projet. +C'est en ça que consistent les https://www.djangopackages.com/[paquets Django] déjà disponibles: ce sont "_simplement_" de petites applications empaquetées et pouvant être réutilisées dans différents contextes (eg. https://github.com/tomchristie/django-rest-framework[Django-Rest-Framework], https://github.com/django-debug-toolbar/django-debug-toolbar[Django-Debug-Toolbar], ...). -Comme expliqué un peu plus haut, le fichier `manage.py` est un *wrapper* sur les commandes `django-admin`. A partir de maintenant, nous n'utiliserons plus que celui-là pour tout ce qui touchera à la gestion de notre projet: - * `manage.py check` pour vérifier (en surface...) que votre projet ne rencontre aucune erreur - * `manage.py check --deploy`, pour vérifier (en surface aussi) que l'application est prête pour un déploiement. +=== manage.py + +Le fichier `manage.py` que vous trouvez à la racine de votre projet est un *wrapper* sur les commandes `django-admin`. +A partir de maintenant, nous n'utiliserons plus que celui-là pour tout ce qui touchera à la gestion de notre projet: + + * `manage.py check` pour vérifier (en surface...) que votre projet ne rencontre aucune erreur évidente + * `manage.py check --deploy`, pour vérifier (en surface aussi) que l'application est prête pour un déploiement * `manage.py runserver` pour lancer un serveur de développement * `manage.py test` pour découvrir les tests unitaires disponibles et les lancer. -La liste complète peut être affichée avec `manage.py help`. Vous remarquerez que ces commandes sont groupées selon différentes catégories: +La liste complète peut être affichée avec `manage.py help`. +Vous remarquerez que ces commandes sont groupées selon différentes catégories: * **auth**: création d'un nouveau super-utilisateur, changer le mot de passe pour un utilisateur existant. * **django**: vérifier la *compliance* du projet, lancer un *shell*, *dumper* les données de la base, effectuer une migration du schéma, ... @@ -53,6 +232,40 @@ La liste complète peut être affichée avec `manage.py help`. Vous remarquerez Nous verrons plus tard comment ajouter de nouvelles commandes. +Si nous démarrons la commande `python manage.py runserver`, nous verrons la sortie console suivante: + +[source,bash] +---- +$ python manage.py runserver +Watching for file changes with StatReloader +Performing system checks... + +System check identified no issues (0 silenced). + +[...] + +December 15, 2020 - 20:45:07 +Django version 3.1.4, using settings 'gwift.settings' +Starting development server at http://127.0.0.1:8000/ +Quit the server with CTRL-BREAK. +---- + +Si nous nous rendons sur la page http://127.0.0.1:8000 (ou http://localhost:8000) comme le propose si gentiment notre (nouveau) meilleur ami, nous verrons ceci: + +.python manage.py runserver (Non, ce n'est pas Challenger) +image::images/django/manage-runserver.png[] + +IMPORTANT: Nous avons mis un morceau de la sortie console entre crochet `[...]` ci-dessus, car elle concerne les migrations. +_A priori_, vous avez également dû recevoir une insulte type `You have 18 unapplied migration(s). [...] Run 'python manage.py migrate' to apply them.` +Cela concerne les migrations, et c'est un point que nous verrons un peu plus tard. + + + +TODO: JE ME SUIS ARRETE ICI <---- + + + + === Structure d'une application Maintenant que l'on a vu à quoi servait `manage.py`, on peut créer notre nouvelle application grâce à la commande `manage.py startapp