- 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 personlive_helpToutes les questions
De716
2 décembre 2023 - 02 décembre 2023 à 21:48
checkConversation résolue
20 réponses
ModuleNotFoundError: No module named 'src'
J'ai ce message d'erreur alors que lorsque j'utilise `from .views import index` cela fonctionne la vue est renvoyée. J'ai marquer le sossioer 'src' comme source root pour voir mais ça …
00:00:00 :Dans cette vidéo, on va créer notre première vue qui va être reliée à un chemin d'URL.Par défaut, ici, on a uniquement le chemin qui mène vers l'admin.
00:00:09 :Donc moi, je vais rajouter un chemin pour mener vers la page d'accueil de mon site.Donc je fais une fonction path et je vais lui passer tout simplement une chaîne de caractère vide.
00:00:18 :Donc cette chaîne de caractère vide, ça signifie que quand on va sur notre serveur de développement ici,on ne mettra rien après le 2.8000.On ne met rien et automatiquement, c'est donc cette vue qui va être retournée.
00:00:31 :Donc pour l'instant, on n'a défini aucune vue.On a juste créé notre chemin d'URL qui, dans ce cas-ci, est donc une chaîne de caractère vide.
00:00:37 :Et on va lui spécifier une vue qu'on va vouloir retourner lorsque quelqu'un se rend sur l'accueil de notre site.Donc pour ça, on va créer un fichier à l'intérieur du DocBlog qui va contenir notre vue.
00:00:48 :Pour l'instant, je vais commenter cette ligne ici pour ne plus avoir d'erreur.Et je vais faire un clic droit sur DocBlog ici et créer un nouveau fichier Python.
00:00:56 :Alors les vues, il faut savoir que ce sont tout simplement des fonctions Python qui vont être contenues à l'intérieur de fichiers Python.Ces fichiers, généralement, on les appelle views.py.
00:01:06 :Mais il faut savoir que vous pouvez l'appeler n'importe comment.Ce n'est pas une obligation, c'est juste une convention.On va créer des vues à l'intérieur de ce fichier, donc on l'appelle views.py.
00:01:17 :Mais au final, ça n'est qu'un module Python comme un autre qu'on va pouvoir ensuite importer à l'intérieur de notre fichier d'URL.Donc je crée ce fichier et à l'intérieur de ce fichier, je vais faire une fonction que je vais appeler index et qui va prendre un premier paramètre.
00:01:31 :Le premier paramètre, c'est le paramètre request qui va récupérer la requête qui a été faite par notre navigateur.Donc ça, c'est très important de le mettre, même si on ne l'utilise pas.
00:01:41 :Il faut qu'on ait ce premier paramètre pour pouvoir récupérer la requête.Dans cet objet requête, on a plein d'éléments qui sont assez intéressants qu'on pourrait vouloir utiliser, mais ce n'est pas une obligation.
00:01:51 :Donc qu'est-ce que je vais faire à l'intérieur de cette fonction ?Je vais retourner un objet qu'on appelle HTTP response.Donc il y a plusieurs types d'objets qu'on peut retourner.
00:02:10 :Pour l'instant, je vais juste retourner un bout de HTML dans une chaîne de caractère grâce à HTTP response.Donc pour l'instant, on a une erreur puisque cette fonction n'est pas importée dans notre script.
00:02:21 :Avec PyCharm, on a quelque chose de très pratique.Si vous faites option entrée ou si vous cliquez sur la petite ampoule qui apparaît ici à gauche, vous pouvez faire la même opération en cliquant ici.
00:02:33 :Vous allez avoir différentes propositions qui vous sont faites pour régler cette erreur.Et la première proposition, c'est la bonne.On nous propose d'importer depuis Django HTTP la fonction HTTP response.
00:02:44 :Donc on va l'importer.On clique dessus et automatiquement, l'import est fait au début de notre fichier et on n'a plus l'erreur qui nous est indiquée.
00:02:52 :Ensuite, on va pouvoir spécifier ce qu'on veut retourner.Pour l'instant, comme je vous ai dit, on va tout simplement retourner un tag HTML.Donc je fais un H1 et je vais dire bonjour, bienvenue sur mon site.
00:03:04 :Et je referme mon tag H1.Donc le tag H1 qui correspond à un titre en HTML.Donc là, c'est tout simplement une chaîne de caractère qui contient du code HTML que l'on retourne avec l'objet HTTP response.
00:03:16 :Donc cette vue maintenant, elle est fonctionnelle.Il ne reste plus qu'à la lier avec mon chemin d'URL dans le fichier urls.py.Donc ici, je vais décommenter cette ligne avec la fonction path.
00:03:27 :Je vais également mettre une virgule ici puisqu'il s'agit d'une liste.On a une liste d'URL avec des chemins.Donc à chaque fois que vous rajoutez un chemin, il ne faut pas oublier de séparer ces chemins avec une virgule.
00:03:37 :Et à l'intérieur de cette fonction path, je vais donc indiquer la vue que je veux utiliser.Donc là, je peux mettre une virgule et indiquer index.
00:03:45 :Là encore, on a une erreur puisque cette vue n'est pas importée.Donc il suffit de l'importer directement dans notre fichier.Là encore, on pourrait utiliser PyCharm pour le faire rapidement en appuyant sur option entrée ou en cliquant sur l'ampoule ici.
00:03:57 :Donc je fais option entrée. Je vais cliquer sur import this name.Et là, vous voyez qu'on a différentes fonctions qui nous sont proposées puisque index, c'est un mot assez courant.
00:04:06 :Donc ce n'est pas étonnant de le retrouver par exemple ici dans les vues de sitemaps, de django, contrib ou d'autres endroits ici comme pip.Nous, ce qui nous intéresse, c'est bien la vue qui est définie dans src.docblog.views.
00:04:19 :Donc cette vue index que l'on vient de créer, je clique dessus pour l'importer et automatiquement, l'import est fait.Donc vous voyez que l'import se fait à partir de notre dossier source.
00:04:27 :On a from src.docblog.views import index.On pourrait également faire un import relatif en mettant tout simplement from.views import index.Donc si on met .views, ça signifie qu'on va importer un module qui se trouve dans le même dossier que celui de urs.py.
00:04:44 :Donc dans urs.py, donc dans ce dossier DocBlog, on a bien un fichier views.py.Donc on peut importer notre vue à partir de ce fichier en faisant from.views import index.
00:04:54 :Sinon, on peut revenir donc au chemin complet avec src.docblog.views.Donc moi, je vais juste faire un import comme ça en relatif et on n'a donc plus d'erreurs ici.
00:05:03 :La vue est bien importée.On peut également lui donner un nom.Donc pour l'instant, on ne va pas voir dans le détail à quoi le nom peut servir.
00:05:09 :Mais c'est toujours bien de nommer nos URL et ça va avoir beaucoup d'intérêt par la suite.Donc c'est une bonne habitude à prendre de nommer nos chemins d'URL.
00:05:17 :Donc là, je fais tout simplement lui donner un nom.Je l'ai appelé index.Je pourrais l'appeler home page ou n'importe quoi.C'est vraiment juste un nom, une chaîne de caractère qui va définir ce chemin d'URL.
00:05:26 :Donc je vais lancer mon serveur de développement.Donc je reviens ici.Je lance le serveur avec la commande run server et je vais pouvoir vérifier que ma page est bien retournée.
00:05:36 :Donc j'actualise.Et là, j'ai bien ma page qui est affichée.Donc on a bien le H1 qui est affiché.Bonjour, bienvenue sur mon site.Et si je reviens dans PyCharm, on voit bien qu'on a une requête get qui a été effectuée à la racine de mon site,donc sur le slash.
00:05:49 :Donc c'est-à-dire qu'on est directement là sur l'URL qui correspond à cette chaîne de caractère vide.Et on a bien un statut 200 qui nous est retourné.
00:05:57 :Donc 200, ça signifie que la requête a été effectuée sans problème.Et on a donc la vue qui est définie dans cette vue index qui nous est retournée.
00:06:04 :Donc si on va dans Views ici, on retourne bien HTTP response.Si vous voulez vous assurer de ça, on peut mettre un print ici en mettant tout simplement bonjour.
00:06:13 :Et on va retourner dans notre navigateur pour effectuer de nouveau une requête.Et si je reviens dans PyCharm, on voit bien qu'on a bonjour qui a été affiché avant de recevoir la réponse de la requête.
00:06:24 :Donc voilà comment connecter une vue à une URL.Vous voyez que c'est vraiment très simple.Là, c'est juste un fichier Python qui contient une vue avec le paramètre request qu'il ne faut pas oublier ici.
00:06:34 :Et ensuite, on retourne tout simplement du code HTML.Dans ce cas-ci, on a retourné une chaîne de caractère avec HTTP response.Donc vous conviendrez qu'actuellement, ce n'est pas très pratique.
00:06:44 :On ne va pas écrire l'entièreté de notre fichier HTML à l'intérieur de notre fichier Python.A la place, ce qu'on va faire, c'est donc créer des templates HTML qu'on va pouvoir retourner dans nos vues.
00:06:55 :Et donc comme ça, on va écrire le HTML d'un côté.Donc la vue, elle est là tout simplement pour faire le lien entre le chemin du URL et le HTML qu'on veut renvoyer.
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.