- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Pour l'instant dans notre vue, il ne se passe pas grand chose d'intéressant.On fait juste un return de la fonction render pour retourner notre template HTML.
00:00:09 :Là où ça va commencer à devenir intéressant, c'est qu'on peut à l'intérieur de cette vuefaire à peu près tout ce qu'on souhaiterait faire avec Pythonet passer ces informations à notre template HTML.
00:00:20 :Pour ça, on va utiliser ce qu'on appelle le context,donc c'est un paramètre que l'on rajoute après le chemin du template HTML,et ce contexte, on va lui passer un dictionnaire qui va contenir des clés et des valeurs.
00:00:33 :A l'intérieur de ce dictionnaire, je peux donc passer des clés et des valeurs.Par exemple, je pourrais faire une clé prénom et comme valeur lui mettre Patrick.
00:00:42 :A l'intérieur de mon template, je vais pouvoir insérer ces données grâce aux doubles accolades.Donc j'ouvre deux accolades, je ferme avec deux accolades,et à l'intérieur ici, je vais pouvoir utiliser la clé de ce que j'ai mis dans mon dictionnaire,donc la clé prénom ici, pour afficher la valeur qui lui est associée.
00:00:59 :Là, j'ai la clé prénom, donc je vais mettre cette clé ici.Bonjour, double accolade, prénom, double accolade, bienvenue sur mon site.Si je reviens sur mon site et que j'actualise, j'ai bien Patrick qui est affiché.
00:01:10 :Donc bonjour Patrick, bienvenue sur mon site.Donc vous voyez que le principe est très simple.On a un contexte ici qui va récupérer un dictionnaire avec des clés et des valeurs,et on peut récupérer tout ça dans notre fichier HTML et les insérer grâce aux doubles accolades.
00:01:26 :On a également pas mal d'options de filtres qui sont assez intéressantes.Donc ces options de filtres, on peut y avoir accès en mettant l'opérateur pipe,donc la barre verticale, et ici par exemple je pourrais mettre upper,donc upper qui va convertir ma chaîne de caractère en majuscule.
00:01:40 :Donc si je reviens ici et que j'actualise, cette fois j'ai bien Patrick qui est mis en majuscule.Donc vous voyez que c'est vraiment très puissant,et on peut faire des trucs un peu plus intéressants que juste passer des valeurs qui sont créées directement dans notre dictionnaire.
00:01:52 :Généralement dans notre vue on va notamment travailler avec des modèles de notre base de données,mais on n'est pas obligé.On pourrait par exemple utiliser le module dateTime pour afficher la date d'aujourd'hui.
00:02:03 :Donc je vais vous montrer ce que ça donne.Ici tout en haut je vais faire from dateTime import dateTime.Donc là ne vous en faites pas, c'est normal.
00:02:11 :On a le nom du module et le nom de la classe ici qui sont les mêmes.Et on va créer donc un objet que je vais appeler date qui va être la date d'aujourd'hui.
00:02:19 :Donc à partir de dateTime je vais utiliser today pour récupérer la date d'aujourd'hui.Si je fais un print de date et un print du type de cet objet,vous allez voir si je rafraîchis mon site et que je reviens dans le terminal qu'on a bien la date d'aujourd'hui,donc 2021-02-07 avec l'heure, les minutes, les secondes et même les microsecondes.
00:02:40 :Et on voit qu'on a un objet de type dateTime.Et donc cet objet on peut le passer à notre contexte.Donc là ici je vais donner mon objet, je vais lui donner la clé date,et comme objet je vais lui passer ma variable date.
00:02:52 :Donc là dans ce cas-ci c'est le même nom pour la clé et l'objet,mais il faut bien comprendre que ça n'a aucune importance.Ici je pourrais mettre a, ou test, ou Patrick, ou n'importe quoi.
00:03:01 :C'est vraiment juste le nom de ce qu'on va utiliser dans notre template.Et ici c'est juste que j'ai appelé cette variable date,mais si je l'appelais a, et bien ici je passerais a à la place.
00:03:10 :Je ne suis même pas obligé de créer une variable dans ce cas-ci,je pourrais directement récupérer cet objet et le passer dans mon contexte comme ceci.
00:03:17 :Et ça marcherait de la même façon.Donc là je passe mon objet dateTime.today à mon template index,donc je vais revenir ici, je vais enlever cette variable,et on va faire un h2.
00:03:28 :Et dans ce h2 on va dire aujourd'hui nous sommes le, et on va intégrer la date ici.Donc je remets les doubles accolades,et je mets l'objet date à l'intérieur de ces doubles accolades.
00:03:38 :Je reviens sur mon site, j'actualise, et là on a bien la date du jour avec l'heure.Et vous voyez que Django est suffisamment intelligent pour prendre cet objet,qui est un objet de type date, et le formater pour qu'on ait quelque chose qui soit lisible.
00:03:51 :Donc là encore on voit toute la puissance de Django,qui sans que l'on ait besoin de faire quoi que ce soit,va nous permettre d'avoir un formatage intelligent.
00:03:59 :Il aurait pu très bien nous afficher dateTime.today ou quelque chose du genre,ou même nous retourner une erreur,mais non il nous affiche quelque chose que l'on peut afficher.
00:04:07 :Et ce qui est encore plus impressionnant, c'est qu'on va avoir un filtre,qui est le filtre date, donc là ça fait beaucoup de dates dans tous les sens,mais ici ce qu'il faut bien comprendre c'est que donc avec cet opérateur pipe,on va indiquer qu'on veut utiliser un filtre sur notre variable ici,
00:04:20 :que l'on intègre dans le template,et date ici ça va nous permettre de spécifier un formatage pour notre date,puisque actuellement vous voyez que le formatage n'est pas très lisible.
00:04:29 :Donc pour ça je vais vous montrer, je vais taper DjangoTemplateFilter sur Google,et le premier lien ici, balises et filtres de gabarit intégrés,va m'amener sur la page qui contient tous les filtres,qu'on peut utiliser à l'intérieur de notre fichier HTML.
00:04:43 :Donc là vous avez la liste ici à droite,et on va retrouver tout en bas, référence des filtres intégrés.Vous avez tout ça ici, on va retrouver le upper que j'ai utilisé tout à l'heure ici,et on a le filtre date, sur lequel on peut cliquer pour avoir plus d'informations.
00:04:58 :Donc on nous indique que c'est un format qui est semblable à la fonction date de PHP,et on a ici toutes les options pour formater notre date.
00:05:05 :Donc moi dans ce cas-ci je vais vouloir dire,bonjour nous sommes le, par exemple, 3 février 2020.Donc je vais récupérer le jour avec la lettre D,ensuite le mois ça va être la lettre F en majuscule,et l'année ça va être Y en majuscule.
00:05:20 :Donc je reviens dans mon template, et pour préciser ce format,on va mettre deux points et ensuite des guillemets pour une chaîne de caractère.Donc le jour c'était D, le mois c'était F, et l'année c'était Y en majuscule.
00:05:31 :Je reviens sur mon site, j'actualise,et là on a bien la date qui a été formatée selon le format que je lui ai donné.Donc aujourd'hui nous sommes le 7 février 2021.
00:05:41 :Donc vous remarquez que le seul problème ici qui reste,c'est que le nom du mois est en anglais,et dans le fichier de settings on va pouvoir changer ça,pour avoir automatiquement la traduction en français.
00:05:51 :Donc là encore toute la puissance de Django.Si je descends tout en bas dans le fichier de settings,on a ici par défaut le language code qui est égal à EN US.
00:06:00 :Et on va pouvoir le changer pour indiquer que notre site n'est pas en anglais aux Etats-Unis,mais bien en France.Vous avez également un lien vers la documentation ici,donc je vais le copier et vous montrer la documentation parce qu'elle est assez intéressante,parce qu'elle va notamment nous permettre de récupérer le code de tous les pays.
00:06:16 :Donc je vais cliquer ici sur Use i18n,ça va nous amener sur la documentation de cette nomenclature,et à partir de là on va cliquer sur language code,et encore une fois on va cliquer sur un autre lien,je fais un peu un chemin détourné,mais ça va nous permettre d'arriver sur ce site,
00:06:33 :donc See also the list of language identifiers,donc vous pourriez le trouver assez facilement directement sur Google,mais je voulais vous montrer en passant par la documentation qu'elle est quand même très bien faite,et que vous avez notamment dans les commentaires de Django souvent des liens comme ça,qui vous permettent d'en savoir un peu plus.
00:06:48 :Donc là je vais cliquer sur list of language identifiers,et si on cherche le EN-US,vous allez voir qu'il est ici, donc ça correspond aux Etats-Unis en anglais.
00:06:57 :Nous ce qui nous intéresse c'est la France,donc on va remonter vers les F,donc voilà ici on a FR, France,et vous voyez qu'on a différentes choses qu'on peut utiliser,notamment par exemple le breton.
00:07:06 :Donc s'il y a des bretons parmi les gens qui m'écoutent,vous allez être assez impressionné de voir qu'on peut mettre BR ici,et si je reviens sur mon site et que j'actualise,on a cette fois-ci le mois de février qui est indiqué en breton.
00:07:18 :Alors n'étant pas breton d'origine,je n'ai aucune idée si c'est exactement comme ça qu'on dit février,ça ressemble plus à quelque chose que Chewbacca pourrait dire,mais apparemment c'est du breton.
00:07:28 :Nous ce qui nous intéresse dans ce cas-ci,désolé ce n'est pas du breton mais du français,on va donc mettre le code pour la France qui est FR-FR en majuscule,donc le code que l'on retrouve ici,si on retourne dans notre tableau, dans la France,on a FR-FR qui correspond au français.
00:07:42 :Vous avez également l'occitan, le corse et l'allemandqui je ne sais pas pourquoi se retrouve là-dedans,probablement pour l'Alsace qui doit avoir des parties de son territoiredans lequel on parle allemand.
00:07:51 :Je ne m'avance pas plus là-dessus.Si j'actualise cette fois-ci,on a bien le mois de février qui est maintenant indiqué en françaiset non plus en anglais ou en langage de Chewbaccaet on a donc notre date qui s'affiche.
00:08:02 :Pour l'instant, on n'a pas l'heure,mais si on souhaitait mettre l'heure,on pourrait retourner dans notre tableau ici et aller chercher l'heure.Par exemple ici, on a toutes les options de formatage de l'heure.
00:08:11 :On pourrait mettre par exemple H, I et S pour afficher la seconde.Je vais revenir dans mon template iciet on va mettre ici H2.I2.S.
00:08:23 :Et là, on va avoir les heures, les minutes et les secondes qui vont s'afficher.Et si j'actualise, vous voyez qu'à chaque fois que j'actualise,on a bien le compte des secondes qui se met à jour.
00:08:31 :Donc vous voyez qu'avec les vues, on peut récupérer des données,des données qui vont être potentiellement dynamiques,que ce soit depuis une base de données ou même ici à partir d'un module Python.
00:08:41 :Et ces données, on peut les envoyer à notre templateet utiliser notamment des options de filtres comme celles qu'on vient de voir.Par la même occasion, vous commencez à voir qu'on peut faire les choses à différents endroits.
00:08:51 :Ça, c'est une notion dont il faut prendre conscience avec Django.Il n'y a pas qu'une seule façon de faire.C'est le cas pour la plupart des langages de programmation, des frameworks.
00:08:59 :Mais dans Django, ici, vous voyez que le formatage de la date, par exemple,on peut le faire directement au niveau du template avec un filtre comme on vient de le faire ici.
00:09:07 :Mais on aurait pu très bien également le faire dans notre vue directement.Donc par exemple ici, avec notre objet Daytime,on a le même genre d'options de formatage qui sont disponiblespour formater une date directement en Python.
00:09:19 :Donc c'est toute la force de Django.Vous pouvez faire les choses de différentes façons à différents endroits.Les langages de filtres sont très intéressantspuisqu'il y a plein de choses comme la gestion, par exemple,de ce qu'on appelle l'internationalisation.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.