From 9e8b04ef5ee4a51483649805bb8e6dbb404570ea Mon Sep 17 00:00:00 2001 From: Fred Pauchet Date: Wed, 18 May 2022 21:52:38 +0200 Subject: [PATCH] =?UTF-8?q?Corrections=20de=20texte,=20ajouts=20minimes,?= =?UTF-8?q?=20...=20Et=20Int=C3=A9gration=20de=20Calvin=20&=20Hobbes=20!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapters/contexts-processors.tex | 46 ++++- chapters/debian.tex | 1 + chapters/gdpr.tex | 34 ++++ chapters/infrastructure.tex | 96 ++++++----- chapters/python.tex | 7 +- chapters/security.tex | 3 + chapters/templates.tex | 159 +++++++++++++++++- chapters/urls.tex | 16 +- chapters/views.tex | 9 + .../time-machine.jpg} | Bin images/infrastructure/mattsegal-logging.png | Bin 0 -> 120558 bytes main.tex | 12 +- source/part-2-deployment/logging.adoc | 2 + source/part-3-data-model/templates.adoc | 121 +------------ .../localization.adoc | 9 - 15 files changed, 326 insertions(+), 189 deletions(-) create mode 100644 chapters/gdpr.tex rename images/{calvin-hobbes-time-machine.jpg => calvin/time-machine.jpg} (100%) create mode 100644 images/infrastructure/mattsegal-logging.png delete mode 100644 source/part-4-services-oriented-applications/localization.adoc diff --git a/chapters/contexts-processors.tex b/chapters/contexts-processors.tex index 8a29dc9..6acefbe 100644 --- a/chapters/contexts-processors.tex +++ b/chapters/contexts-processors.tex @@ -3,6 +3,17 @@ Mise en pratique: un \emph{context processor} sert \emph{grosso-modo} à peupler Un context processor est un peu l'équivalent d'un middleware, mais entre les données et les templates, là où le middleware va s'occuper des données relatives aux réponses et requêtes elles-mêmes. Un \emph{context processor} sert \emph{grosso-modo} à peupler l'ensemble des données transmises des vues aux templates avec des données communes. Un context processor est un peu l'équivalent d'un middleware, mais est situé entre les données et les templates, là où le middleware va s'occuper des données relatives aux réponses et requêtes elles-mêmes. +Nous vous proposons deux exemples ci-dessous: + +\begin{enumerate} + \item + Le premier récupère le numéro de version de \texttt{Git}. + Ce n'est sans doute pas le plus adéquat à réaliser en production, puisqu'il suffirait que Git ne soit pas installé, que le code ait été déployé d'une autre manière ou d'un soucis de performances. + \item + Le second qui récupère la liste des catégories et sous-catégories d'une base de données fictives. + Ces deux informations pourraient être affichées pour chaque utilisateur et chaque requête faite vers l'application. + Dans l'immédiat, ce n'est pas trop lourd, mais vu que ces informations ne dépendent pas de l'utilisateur, nous pouvons les glisser dans le cache pour faire gagner énormément de temps. +\end{enumerate} \begin{minted}{python} # core/context_processors.py @@ -16,14 +27,32 @@ Un \emph{context processor} sert \emph{grosso-modo} à peupler l'ensemble des do ["git", "describe", "--always"] ).strip(), "git_date": subprocess.check_output( - ["git", "show", "-s", r"--format=%cd", r"--date=format:%d-%m-%Y"] + [ + "git", + "show", + "-s", + r"--format=%cd", + r"--date=format:%d-%m-%Y" + ] ), } \end{minted} - Ceci aura pour effet d'ajouter les deux variables \texttt{git\_describe} et \texttt{git\_date} dans tous les contextes de tous les templates de l'application. +\begin{minted}{python} + from product.models import SubCategory, Category + + + def add_variable_to_context(request): + return { + 'subCategories': SubCategory.objects.order_by('id').all(), + 'categories': Category.objects.order_by("id").all(), + } +\end{minted} + +Il convient ensuite d'ajouter ces \textit{context processors} au niveau des options de configuration des templates: + \begin{minted}{python} TEMPLATES = [ { @@ -32,11 +61,14 @@ Ceci aura pour effet d'ajouter les deux variables \texttt{git\_describe} et \tex 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - "core.context_processors.git_describe" + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + "..." + "core.context_processors.git_describe", + "core.context_processors.add_variable_to_context", + "...", ], }, }, diff --git a/chapters/debian.tex b/chapters/debian.tex index f5cc235..95de2e5 100644 --- a/chapters/debian.tex +++ b/chapters/debian.tex @@ -498,6 +498,7 @@ server { \subsubsection{Let's Encrypt} +Certificats externes + communication par socket interne. \section{Mise à jour} diff --git a/chapters/gdpr.tex b/chapters/gdpr.tex new file mode 100644 index 0000000..390f2dc --- /dev/null +++ b/chapters/gdpr.tex @@ -0,0 +1,34 @@ +\chapter{Politique de protection des données} + +\begin{quote} + Le règlement général sur la protection des données (RGPD) responsabilise les organismes publics et privés qui traitent leurs données. + Vous collectez ou traitez des données personnelles ? Adoptez les bons réflexes ! + + -- \url{https://www.cnil.fr/fr/comprendre-le-rgpd} +\end{quote} + +Par exemple: https://discord.com/privacy + +\url{https://www.cnil.fr/sites/default/files/atoms/files/bpi-cnil-rgpd_guide-tpe-pme.pdf} + +\section{TL;DR} + +Aka "Les six bons conseils" de la CNIL: + +\begin{enumerate} + \item \textbf{Ne collectez que les données vraiment nécessaires} + \item \textbf{Soyez transparents} + \item \textbf{Pensez au droit des personnes} + \item \textbf{Gardez la maîtrise de vos données} + \item \textbf{Identifiez les risques} + \item \textbf{Sécurisez vos données} +\end{enumerate} + +\section{Donnée personnelle, traitement de données} + + +\subsection{Notions clés} + + +\section{Les bons réflexes} + diff --git a/chapters/infrastructure.tex b/chapters/infrastructure.tex index 35bec11..b3e8837 100644 --- a/chapters/infrastructure.tex +++ b/chapters/infrastructure.tex @@ -148,37 +148,8 @@ Au niveau logiciel (la partie mise en subrillance ci-dessus), la requête arrive \subsubsection{Supervision des processus} -La récupération de métriques augmente la confiance que l'on peut avoir dans la solution. -L'analyse de ces métriques garantit un juste retour d'informations, sous réserve qu'elles soient exploitées correctement. -La première étape consiste à agréger ces données dans un dépôt centralisé, tandis que la seconde étape exigera une structuration correcte des données envoyées. +https://circus.readthedocs.io/en/latest/, https://uwsgi-docs.readthedocs.io/en/latest/, statsd -La collecte des données doit récupérer des données des couches métiers, applicatives et d'environnement. -Ces données couvrent les évènements, les journaux et les métriques - indépendamment de leur source - le pourcentage d'utilisation du processeur, la mémoire utilisée, les disques systèmes, l'utilisation du réseau, \ldots - -\begin{enumerate} - \item - \textbf{Métier}: Le nombre de ventes réalisées, le nombre de nouveaux utilisateurs, les résultats de tests A/B, \ldots - \item - \textbf{Application}: Le délai de réalisation d'une transaction, le temps de réponse par utilisateur, \ldots - \item - \textbf{Infrastructure}: Le trafic du serveur Web, le taux d'occupation du CPU, \ldots - \item - \textbf{Côté client}: Les erreurs applicatives, les transactions côté utilisateur, \ldots - \item - \textbf{Pipeline de déploiement}: Statuts des builds, temps de mise à disposition d'une fonctionnalité, fréquence des déploiements, statuts des environnements, \ldots -\end{enumerate} - -Bien utilisés, ces outils permettent de prévenir des incidents de manière empirique. - -\begin{quote} - Monitoring is so important that our monitoring systems need to be more available and scalable than the systems being monitored. - - -- Adrian Cockcroft \cite[p. 200]{devops_handbook} -\end{quote} - -Histoire de schématiser, toute équipe se retrouve à un moment où un autre dans la situation suivante: personne ne veut appuyer sur le gros bouton rouge issu de l'automatisation de la chaîne de production et qui dit "Déploiement". -Et pour cause: une fois que nous aurons trouvé une joyeuse victime qui osera braver le danger, il y aura systématiquement des imprévus, des petits détails qui auront été oubliés sur le côté de la route, et qui feront lâchement planter les environnements. -Et puisque nous n'aurons pas (encore) de télémétrie, le seul moment où nous comprendrons qu'il y a un problème, sera quand un utilisateur viendra se plaindre. \subsubsection{Journaux} @@ -246,24 +217,65 @@ Pour utiliser nos loggers, il suffit de copier le petit bout de code suivant: \href{https://docs.djangoproject.com/en/stable/topics/logging/\#examples}{Par exemples}. -\subsubsection{Exploitation des journaux} +\subsubsection{Exploitation des journaux, télémétrie} + +Des erreurs sur un environnement de production arriveront, tôt ou tard, et seront sans doute plus compliquée à corriger qu'un morceau de code dans un coin du code. +L'exploitation des journaux permettra de comprendre, analyser, voire corriger, certains incidents. + +Comme nous l'avons vu, en fonction de l'infrastructure choisie, il existe plusieurs types de journaux: \begin{enumerate} - \item - Sentry via sentry\_sdk - \item - Nagios - \item - LibreNMS - \item - Zabbix + \item Les journaux applicatifs: ie. le flux d'évènements généré par votre application Django + \item Les journaux du serveur: Nginx, Gunicorn, \ldots + \item Les journaux des autres composants: base de données, service de mise en cache, ... \end{enumerate} +Une manière de faire consiste à se connecter physiquement ou à distance à la machine pour analyser les logs. +En pratique, c'est impossible: entre les répartiteurs de charge, les différents serveurs, \ldots, il vous sera physiquement impossible de récupérer une information cohérente. +La solution consiste à agréger vos journaux à un seul et même endroit: + +\includegraphics{images/infrastructure/mattsegal-logging.png} + +CC https://mattsegal.dev/django-monitoring-stack.html + +\subsubsection{Sumologic} + +\subsubsection{Alternatives} + Il existe également \href{https://munin-monitoring.org}{Munin}, \href{https://www.elastic.co}{Logstash, ElasticSearch et Kibana (ELK-Stack)} ou \href{https://www.fluentd.org}{Fluentd}. +La récupération de métriques augmente la confiance que l'on peut avoir dans la solution. +L'analyse de ces métriques garantit un juste retour d'informations, sous réserve qu'elles soient exploitées correctement. +La première étape consiste à agréger ces données dans un dépôt centralisé, tandis que la seconde étape exigera une structuration correcte des données envoyées. -\subsubsection{Zabbix, Nagios, \ldots} +La collecte des données doit récupérer des données des couches métiers, applicatives et d'environnement. +Ces données couvrent les évènements, les journaux et les métriques - indépendamment de leur source - le pourcentage d'utilisation du processeur, la mémoire utilisée, les disques systèmes, l'utilisation du réseau, \ldots -\subsubsection{Sentry} +\begin{enumerate} + \item + \textbf{Métier}: Le nombre de ventes réalisées, le nombre de nouveaux utilisateurs, les résultats de tests A/B, \ldots + \item + \textbf{Application}: Le délai de réalisation d'une transaction, le temps de réponse par utilisateur, \ldots + \item + \textbf{Infrastructure}: Le trafic du serveur Web, le taux d'occupation du CPU, \ldots + \item + \textbf{Côté client}: Les erreurs applicatives, les transactions côté utilisateur, \ldots + \item + \textbf{Pipeline de déploiement}: Statuts des builds, temps de mise à disposition d'une fonctionnalité, fréquence des déploiements, statuts des environnements, \ldots +\end{enumerate} -\subsubsection{Greylog} +Bien utilisés, ces outils permettent de prévenir des incidents de manière empirique. + +\begin{quote} + Monitoring is so important that our monitoring systems need to be more available and scalable than the systems being monitored. + + -- Adrian Cockcroft \cite[p. 200]{devops_handbook} +\end{quote} + +Histoire de schématiser, toute équipe se retrouve à un moment où un autre dans la situation suivante: personne ne veut appuyer sur le gros bouton rouge issu de l'automatisation de la chaîne de production et qui dit "Déploiement". +Et pour cause: une fois que nous aurons trouvé une joyeuse victime qui osera braver le danger, il y aura systématiquement des imprévus, des petits détails qui auront été oubliés sur le côté de la route, et qui feront lâchement planter les environnements. +Et puisque nous n'aurons pas (encore) de télémétrie, le seul moment où nous comprendrons qu'il y a un problème, sera quand un utilisateur viendra se plaindre. + +\subsubsection{Statsd} + +https://www.datadoghq.com/blog/statsd/ diff --git a/chapters/python.tex b/chapters/python.tex index c7217b7..876e155 100644 --- a/chapters/python.tex +++ b/chapters/python.tex @@ -355,10 +355,15 @@ en apposant un \emph{tag} indiquant que vous avez pris connaissance de la remarque, que vous en avez tenu compte, et que vous choisissez malgré tout de faire autrement. +\begin{listing}[H] + \includegraphics{images/calvin/time-machine.jpg} + \caption{Calvin \& Hobbes se rendent dans le futur pour récupérer les devoirs que son moi-du-futur aura fait (et pour ne pas avoir à les faire lui-même).} +\end{listing} + Pour vous donner une idée, voici ce que cela pourrait donner avec un code pas très propre et qui ne sert à rien: -\begin{listing}[!ht] +\begin{listing}[H] \begin{minted}{python} from datetime import datetime """On stocke la date du jour dans la variable ToD4y""" diff --git a/chapters/security.tex b/chapters/security.tex index 542b1cd..107c221 100644 --- a/chapters/security.tex +++ b/chapters/security.tex @@ -22,3 +22,6 @@ Il conviendra d'ajouter au dépôt de source: Au niveau du dépôt de sources, i \item Les paquets à utiliser et à compiler (NTP pour synchroniser les horloges, les paramètres d'OpenSSL, \ldots), les configurations d'Nginx/Apache, \ldots \end{enumerate} + +\section{Certificats} + diff --git a/chapters/templates.tex b/chapters/templates.tex index ac10615..7631984 100644 --- a/chapters/templates.tex +++ b/chapters/templates.tex @@ -51,7 +51,7 @@ En reprenant l'exemple de la page HTML définie ci-dessus, nous pouvons l'agrém \scalebox{1.0}{\includegraphics[max size={\textwidth}{\textheight}]{images/html/my-first-wishlists.png}} \end{figure} -\section{Entête, héritage et extensions} +\section{Entête, héritage} Plutôt que de réécrire à chaque fois le même entête, nous pouvons nous simplifier la vie en implémentant un héritage au niveau des templates. Pour cela, il suffit de définir des blocs de contenu, et d'\emph{étendre} une page de base, puis de surcharger ces mêmes blocs. @@ -93,9 +93,166 @@ Nous avons à présent un bloc \texttt{title} et un bloc \texttt{body}, qui peuv {% endblock% %} \end{minted} +\section{Extensions} + +Attention: il est primordial que les extensions/tags ne fassent aucune requête en base de données. +Il est vraiment important que les données (re)travaillées soient disponibles dès que l'appel sera réalisé, sans quoi cela dégradera énormément les performances à l'affichage de la page. + +Chronologie T -> T+1 -> T+2 +Données affichées: X -> X, Y -> X,Y,Z +Et ça sera dégueulasse. + +\subsection{Extensions natives} + +Django vient avec un ensemble de *tags* ou *template tags*. +On a vu la boucle \texttt{for} ci-dessus, mais il existe \href{https://docs.djangoproject.com/fr/1.9/ref/templates/builtins/}{beaucoup d'autres tags nativement présents}. +Les principaux sont par exemple: + +\begin{itemize} + \item Les conditions, qui permettent de vérifier un contexte et de n'afficher le contenu d'un bloc que si la condition est vérifiée + \begin{itemize} + \item \texttt{if} \ldots \texttt{elif} \ldots \texttt{endif} + \end{itemize} + \item Les opérateurs de comparaisons: + \begin{itemize} + \item \texttt{<} + \item \texttt{>} + \item \texttt{==} + \item \texttt{in} + \item \texttt{not in} + \end{itemize} +\end{itemize} + + + Regroupements avec le tag `{% regroup ... by ... as ... %}`. +* `{% url %}` pour construire facilement une URL à partir de son nom +* `urlize` qui permet de remplacer des URLs trouvées dans un champ de type CharField ou TextField par un lien cliquable. +* ... + +Chacune de ces fonctions peut être utilisée autant au niveau des templates qu'au niveau du code. +Il suffit d'aller les chercher dans le package \texttt{django.template.defaultfilters}. +Par exemple: + +\begin{minted}{python} + from django.db import models + from django.template.defaultfilters import urlize + + + class Suggestion(models.Model): + """Représentation des suggestions. + """ + subject = models.TextField(verbose_name="Sujet") + + def urlized_subject(self): + """ + Voir https://docs.djangoproject.com/fr/3.0/howto/custom-template-tags/ + """ + return urlize(self.subject, autoescape=True) +\end{minted} + +\subsubsection{Regroup by} + +\subsubsection{Inclusion} + +\subsection{Extensions non-natives} + +En plus des quelques tags survolés ci-dessus, il est également possible de construire ses propres tags. La structure est un peu bizarre, car elle consiste à ajouter un paquet dans une de vos applications, à y définir un nouveau module et à y définir un ensemble de fonctions. +Chacune de ces fonctions correspondra à un tag appelable depuis vos templates. + +Il existe trois types de tags *non-builtins*: + +\begin{enumerate} + \item *Les filtres* - on peut les appeler grâce au *pipe* `|` directement après une valeur dans le template. + \item *Les tags simples* - ils peuvent prendre une valeur ou plusieurs en paramètre et retourne une nouvelle valeur. Pour les appeler, c'est *via* les tags \texttt{\{\% nom\_de\_la\_fonction param1 param2 \ldots \%\}}. + \item *Les tags d'inclusion*: ils retournent un contexte (ie. un dictionnaire), qui est ensuite passé à un nouveau template. Type \texttt{\{\% include '...' ... \%\}}. +\end{enumerate} + +Pour l'implémentation: + + 1. On prend l'application `wish` et on y ajoute un répertoire `templatetags`, ainsi qu'un fichier `\_\_init\_\_.py`. + 2. Dans ce nouveau paquet, on ajoute un nouveau module que l'on va appeler `tools.py` + 3. Dans ce module, pour avoir un aperçu des possibilités, on va définir trois fonctions (une pour chaque type de tags possible). + +\subsubsection{Filtres} + +\begin{minted}{python} + # wish/tools.py + + from django import template + + from wish.models import Wishlist + + register = template.Library() + + @register.filter(is_safe=True) + def add_xx(value): + return '%sxx' % value +\end{minted} + +\subsubsection{Tags simples} + +Un \textbf{tag simple} reçoit une valeur ou un objet en entrée et génère une valeur de retour simple (un objet, un type natif, ...). + +\begin{minted}{python} + # wish/tools.py + + from django import template + + from wish.models import Wishlist + + + register = template.Library() + + + @register.simple_tag + def current_time(format_string): + return datetime.datetime.now().strftime(format_string) +\end{minted} + +\subsubsection{Tags d'inclusion} + +Les \textit{tags d'inclusion} sont des tags associés à un (morceau de) template. +C'est-à-dire qu'une fois qu'ils auront réalisés le traitement qui leur est demandé, il généreront un canevas HTML qui sera \textbf{inclus} à l'endroit où le tag aura été appelé. + +\begin{minted}{python} + # wish/tools.py + + from django import template + + from wish.models import Wishlist + + + register = template.Library() + + + @register.inclusion_tag('wish/templatetags/wishlists_list.html') + def wishlists_list(): + return { 'list': Wishlist.objects.all() } +\end{minted} + +\subsection{Pagination} + \section{Structure et configuration} Il est conseillé que les templates respectent la structure de vos différentes applications, mais dans un répertoire à part. Par convention, nous les placerons dans un répertoire \texttt{templates}. La hiérarchie des fichiers devient alors celle-ci: +Par défaut, Django cherchera les templates dans les répertoirer d'installation. +Vous devrez vous éditer le fichier \texttt{gwift/settings.py} et ajouter, dans la variable \texttt{TEMPLATES}, la clé \texttt{DIRS} de la manière suivante: + +\begin{minted}{python} + TEMPLATES = [ + { + ... + 'DIRS': [ 'templates' ], + ... + }, + ] +\end{minted} + +\subsection{Fichiers statiques} + +\section{Dynamisme - HTMX} + + diff --git a/chapters/urls.tex b/chapters/urls.tex index 4db51a6..36fd032 100644 --- a/chapters/urls.tex +++ b/chapters/urls.tex @@ -1,7 +1,9 @@ \chapter{URLs et espaces de noms} +La gestion des URLs consiste \textbf{grosso modo} à assigner un chemin à une fonction Python. + +\section{Configuration et correspondances} -La gestion des URLs permet \textbf{grosso modo} d'assigner une adresse paramétrée ou non à une fonction Python. La manière simple consiste à modifier le fichier \texttt{gwift/settings.py} pour y ajouter nos correspondances. Par défaut, le fichier ressemble à ceci: @@ -16,7 +18,6 @@ urlpatterns = [ ] \end{minted} - La variable \texttt{urlpatterns} associe un ensemble d'adresses à des fonctions. Dans le fichier \textbf{nu}, seul le \textbf{pattern} \texttt{admin} est défini, et inclut toutes les adresses qui sont définies dans le fichier \texttt{admin.site.urls}. @@ -60,8 +61,9 @@ Note sur les namespaces. De là, découle une autre bonne pratique: l'utilisation de \emph{breadcrumbs} (\url{https://stackoverflow.com/questions/826889/how-to-implement-breadcrumbs-in-a-django-template}) ou de guidelines de navigation. +\section{Tests} -\section{Reverse} +\subsection{Reverse} En associant un nom ou un libellé à chaque URL, il est possible de récupérer sa \textbf{traduction}. Cela implique par contre de ne plus toucher à ce libellé par la suite\ldots\hspace{0pt} @@ -88,4 +90,10 @@ De la même manière, on peut également récupérer l'URL de destination pour n from django.core.urlresolvers import reverse_lazy wishlists_url = reverse_lazy('wishlists') -\end{minted} \ No newline at end of file +\end{minted} + +\subsection{Resolve} + +La résolution d'une adresse consiste à retrouver la fonction à partir d'une URL. +Si nous donnons le chemin \texttt{/wishlists/wish/123}, nous nous attendons à recevoir la fonction en retour. +Au niveau des tests, cela permettra de nous assurer que c'est la bonne fonction qui est récupérée par une adresse connue. diff --git a/chapters/views.tex b/chapters/views.tex index 457c8da..0af0ca2 100644 --- a/chapters/views.tex +++ b/chapters/views.tex @@ -1,2 +1,11 @@ \chapter{Vues} +Les vues sont la plaque tournantes entre nos données (\textit{via} le modèle) et le rendus d'un template. + +\section{Fonctions}\label{FBV} + +Les fonctions + + +\section{Classes}\label{CBV} + diff --git a/images/calvin-hobbes-time-machine.jpg b/images/calvin/time-machine.jpg similarity index 100% rename from images/calvin-hobbes-time-machine.jpg rename to images/calvin/time-machine.jpg diff --git a/images/infrastructure/mattsegal-logging.png b/images/infrastructure/mattsegal-logging.png new file mode 100644 index 0000000000000000000000000000000000000000..66ac174c26caba1168709d0652885f461618ca70 GIT binary patch literal 120558 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

0o>zbcu7M?6=<(2=82hnZ;RYA{ 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 z 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, `==`, `in`, `not in`. -* Regroupements avec le tag `{% regroup ... by ... as ... %}`. -* `{% url %}` pour construire facilement une URL à partir de son nom -* `urlize` qui permet de remplacer des URLs trouvées dans un champ de type CharField ou TextField par un lien cliquable. -* ... - -Chacune de ces fonctions peut être utilisée autant au niveau des templates qu'au niveau du code. Il suffit d'aller les chercher dans le package `django.template.defaultfilters`. Par exemple: [source,python] ---- -from django.db import models -from django.template.defaultfilters import urlize -class Suggestion(models.Model): - """Représentation des suggestions. - """ - subject = models.TextField(verbose_name="Sujet") - - def urlized_subject(self): - """ - Voir https://docs.djangoproject.com/fr/3.0/howto/custom-template-tags/ - """ - return urlize(self.subject, autoescape=True) - ---- ==== Regroup By @@ -69,19 +25,7 @@ class Suggestion(models.Model): === Non-builtins -En plus des quelques tags survolés ci-dessus, il est également possible de construire ses propres tags. La structure est un peu bizarre, car elle consiste à ajouter un paquet dans une de vos applications, à y définir un nouveau module et à y définir un ensemble de fonctions. Chacune de ces fonctions correspondra à un tag appelable depuis vos templates. -Il existe trois types de tags *non-builtins*: - -1. *Les filtres* - on peut les appeler grâce au *pipe* `|` directement après une valeur dans le template. -2. *Les tags simples* - ils peuvent prendre une valeur ou plusieurs en paramètre et retourne une nouvelle valeur. Pour les appeler, c'est *via* les tags `{% nom_de_la_fonction param1 param2 ... %}`. -3. *Les tags d'inclusion*: ils retournent un contexte (ie. un dictionnaire), qui est ensuite passé à un nouveau template. Type `{% include '...' ... %}`. - -Pour l'implémentation: - - 1. On prend l'application `wish` et on y ajoute un répertoire `templatetags`, ainsi qu'un fichier `__init__.py`. - 2. Dans ce nouveau paquet, on ajoute un nouveau module que l'on va appeler `tools.py` - 3. Dans ce module, pour avoir un aperçu des possibilités, on va définir trois fonctions (une pour chaque type de tags possible). [source,bash] ---- @@ -91,62 +35,6 @@ Pour l'implémentation: Pour plus d'informations, la https://docs.djangoproject.com/en/stable/howto/custom-template-tags/#writing-custom-template-tags[documentation officielle est un bon début]. -==== Filtres - -[source,python] ----- -# wish/tools.py - -from django import template - -from wish.models import Wishlist - -register = template.Library() - -@register.filter(is_safe=True) -def add_xx(value): - return '%sxx' % value ----- - - -==== Tags simples - -[source,python] ----- -# wish/tools.py - -from django import template - -from wish.models import Wishlist - - -register = template.Library() - - -@register.simple_tag -def current_time(format_string): - return datetime.datetime.now().strftime(format_string) ----- - - -==== Tags d'inclusion - -[source,python] ----- -# wish/tools.py - -from django import template - -from wish.models import Wishlist - - -register = template.Library() - - -@register.inclusion_tag('wish/templatetags/wishlists_list.html') -def wishlists_list(): - return { 'list': Wishlist.objects.all() } ----- === Contexts Processors @@ -160,14 +48,7 @@ L'idée est d'ajouter une fonction à un module Python à notre projet, puis de [source,python] ---- -from product.models import SubCategory, Category - -def add_variable_to_context(request): - return { - 'subCategories': SubCategory.objects.order_by('id').all(), - 'categories': Category.objects.order_by("id").all(), - } ---- [source,python] @@ -175,7 +56,7 @@ def add_variable_to_context(request): 'OPTIONS': { 'context_processors': [ .... - 'core.context_processors.add_variable_to_context', + .... ], }, diff --git a/source/part-4-services-oriented-applications/localization.adoc b/source/part-4-services-oriented-applications/localization.adoc deleted file mode 100644 index da47307..0000000 --- a/source/part-4-services-oriented-applications/localization.adoc +++ /dev/null @@ -1,9 +0,0 @@ -== i18n / l10n - -La localisation (_l10n_) et l'internationalization (_i18n_) sont deux concepts proches, mais différents: - -* Internationalisation: _Preparing the software for localization. Usually done by developers._ -* Localisation: _Writing the translations and local formats. Usually done by translators._ - -L'internationalisation est donc le processus permettant à une application d'accepter une forme de localisation. -La seconde ne va donc pas sans la première, tandis que la première ne fait qu'autoriser la seconde.