Accéder au contenu principal

Développement Web Django en Python

Apprenez les bases du développement web en utilisant Django pour créer des applications de blog qui ont la fonctionnalité (CRUD) Créer, Lire, Mettre à jour, Supprimer.
Actualisé 16 janv. 2025  · 12 min de lecture

Django est un cadre de développement web de haut niveau, libre et gratuit, largement utilisé. Il offre aux développeurs de nombreuses fonctionnalités "prêtes à l'emploi", ce qui permet un développement rapide. Cependant, les sites web construits à partir de ce système sont à la fois sécurisés, évolutifs et faciles à maintenir.

Objectif

L'objectif de ce tutoriel est de construire une application de blog où le contenu du blog peut être créé et mis à jour par le biais d'un panneau d'administration. Le contenu du blog est affiché sur la page et peut être supprimé si nécessaire. L'application globale fournit une fonctionnalité CRUD (Créer, Lire, Mettre à jour, Supprimer).

Ce tutoriel n'utilise pas de technologies FrontEnd comme Javascript, CSS, etc. mais se concentre sur des concepts de base mais essentiels qui sont nécessaires dans tout développement Web Django.

Configuration requise

  1. Git Bash : L'utilisateur de tous les systèmes d'exploitation peut l'utiliser. Toutes les commandes liées à Django et les commandes Unix sont effectuées par son intermédiaire. Pour le téléchargement de Git bash : Cliquez sur moi.
  2. Éditeur de texte : Vous pouvez utiliser n'importe quel éditeur de texte comme Sublime Text ou Visual Studio Code. Pour le projet suivant, Sublime Text est utilisé.
  3. Python 3 : La dernière version de Python peut être téléchargée dans Download Python.

Note : Vous pouvez facilement suivre ce tutoriel si vous comprenez les bases de Python et connaissez les boucles, les fonctions, les classes, etc., et si vous avez quelques connaissances de bash ou de la ligne de commande.

Environnement virtuel

L'environnement virtuel sert de dépendance aux projets liés à Python. Il fonctionne comme un conteneur autonome ou un environnement isolé où sont installés tous les paquets liés à Python et les versions requises relatives à un projet spécifique. Étant donné que de nouvelles versions de Python, de Django ou de paquets, etc. seront déployées, grâce à l'aide d'un environnement virtuel, vous pouvez travailler avec des versions plus anciennes qui sont spécifiques à votre projet. En résumé, vous pouvez démarrer un projet indépendant lié à Django de la version 2.0, tandis qu'un autre projet indépendant lié à Django de la version 3.0 peut être démarré sur le même ordinateur.

Note : Il existe de nombreuses façons de créer un environnement virtuel, mais une seule est présentée ci-dessous.

Étapes de la création d'un environnement virtuel

  1. Vous pouvez créer un nouveau répertoire nommé "projet-blog" en utilisant la commande "mkdir" dans votre bureau.
  2. Changez le répertoire en "projet-blog" en utilisant la commande "cd".
    Étapes de la création d'un environnement virtuel

  3. L'environnement virtuel est créé en utilisant 'python -m venv env', où env est notre environnement virtuel montré par la commande 'ls'.
    Étapes de la création d'un environnement virtuel

  4. Pour activer votre environnement virtuel : L'environnement virtuel peut être activé à l'aide de la commande "source", où le dossier "Scripts" doit être activé.
    Étapes de la création d'un environnement virtuel
    Le mot "env" apparaîtra entre parenthèses si vous avez réussi à activer votre environnement virtuel.

  5. Installation de Django : Vous pouvez utiliser 'pip install django' pour installer Django dans votre environnement virtuel spécifique.
    Étapes de création d'un environnement virtuel

Note: Les utilisateurs de Linux et de Mac doivent utiliser spécifiquement "python3" dans la commande, car la version 2 de Python est déjà préinstallée sur leur ordinateur. De plus, il est préférable d'utiliser la version 3 dès maintenant, car Python ne prend plus en charge la version 2 après l'année 2020.

Création d'un projet Django

  1. La première étape consiste à créer votre projet en utilisant la commande 'django-admin startproject project_name', où 'project_name' est 'django_blog' dans votre cas. En outre, il générera de nombreux fichiers dans notre projet nouvellement créé, que vous pourrez rechercher plus en détail dans la documentation de Django si nécessaire.
    Création d'un projet Django
  2. Changez le répertoire du projet nouvellement créé à l'aide de la commande "cd" et affichez le fichier créé à l'aide de la commande "ls".
    Création d'un projet Django
  3. Vous pouvez exécuter votre projet en utilisant " python manage.py runserver ".
    Création d'un projet Django
  4. Le projet peut être visualisé dans votre navigateur préféré (Google Chrome, Mozilla Firefox, etc.). Vous pouvez entrer dans votre navigateur et taper 'localhost:8000' ou '127.0.0.1:8000' dans l'URL, comme indiqué ci-dessous.
    Création d'un projet Django
    Note : Le projet Django est un projet d'entreprise : Pour obtenir la même page que ci-dessus, le serveur dans le bash doit tourner en arrière-plan. Vous pouvez également arrêter manuellement le serveur si nécessaire en appuyant sur 'Ctr+C' sous Windows/Linux et 'Cmd+C' sous Mac.

Démarrer le nouveau projet Django

La création d'un nouveau projet dans Django se fait toujours en deux étapes, comme indiqué ci-dessous.

  1. La première étape consiste à créer une application en utilisant la commande 'python manage.py startapp app_name', où app_name est 'blog' dans votre cas. Dans Django, il y a de nombreuses applications pour un seul projet où chaque application sert de fonctionnalité unique et spécifique pour le projet en question.
    Démarrage du nouveau projet
  2. La deuxième étape consiste à informer notre projet de l'existence de notre nouvelle application en modifiant la section INSTALLED_APP du fichier 'django_blog/settings.py'.
    Démarrer le nouveau projet

Changement dans nos modèles

Django utilise 'SQLite' comme base de données par défaut, qui est légère et seulement utilisée pour de petits projets, ce qui est parfait pour ce projet. Il utilise le "Object Relational Mapper (ORM)" qui facilite grandement le travail avec la base de données. Le code de la base de données n'est pas écrit, alors que les tableaux de la base de données sont créés à l'aide du mot-clé "class" dans "models.py".

Dans 'blog/models.py', vous devez créer un nouveau modèle nommé 'Post'. Il s'agit d'une classe qui deviendra par la suite un tableau de base de données et qui hérite actuellement de "models.Model". Comme dans un blog standard, un certain "Post" contient un titre, qui sera un champ appelé CharField. Il s'agit d'une colonne de texte qui accepte l'argument obligatoire "max_length", qui s'avère être 50 dans votre cas. Il existe également un autre champ nommé "content", qui est le champ TextField, qui contient le texte détaillé de l'"article" comme dans un blog standard. La méthode double underscore('str') est définie, qui remplace le champ 'title' et renvoie le nom du 'title' actuel au lieu de certains objets.
Changements dans nos modèles

Effectuer une migration

'python manage.py makemigrations' est un processus de première étape qui lit le fichier 'models.py' après sa création. Il crée un nouveau dossier appelé "migrations" dans lequel se trouve un fichier nommé "0001_initial.py", qui est portable dans toute la base de données.
Changements dans nos modèles

Migration vers la base de données

C'est la deuxième étape où 'python manage.py migrate' lit le dossier 'migrations' nouvellement créé et crée la base de données, et il fait évoluer la base de données lorsqu'il y a un changement dans le modèle.
Changement dans nos modèles

S'inscrire à l'administration

Passons à 'blog/admin.py' et importons les modèles appelés 'Post' en utilisant 'from .models import Post'. Pour enregistrer des modèles auprès de l'administrateur, la commande est "admin.site.register(Post)".


Changement dans nos modèles

Création d'un SuperUtilisateur et visualisation dans le panneau d'administration

Vous devez créer un SuperUtilisateur avant d'accéder au panneau d'administration. Pour ce faire, utilisez 'winpty python manage.py createsuperuser'.
Changement dans nos modèles
Note : winpty est une commande spécifique à bash utilisée pour communiquer avec les programmes de la console Windows.

Exécutez votre serveur en arrière-plan dans bash par la commande python manage.py runserver. Allez dans votre navigateur et tapez ce qui suit dans l'URL.

Remplissez ensuite vos coordonnées, c'est-à-dire le nom d'utilisateur et le mot de passe que vous avez créés précédemment :
Modification de nos modèles
Affichez ensuite votre panneau d'administration avec nos modèles "Post" nouvellement créés.
Modification dans nos modèles
Modifiez le contenu de l'article en cliquant sur le bouton "Ajouter". Remplissez les informations et enregistrez le détail.
Changement dans nos modèles

Changement de vues et d'url

Passez à 'blog/views.py' et effectuez les modifications comme indiqué ci-dessous. Ajoutez la fonction "blog_list", qui reprend la requête. La requête récupère tous les objets créés à l'aide de 'Post.objects.all()' et les enregistre dans le message. Il existe un dictionnaire nouvellement créé appelé "context" dans lequel l'objet peut être transmis comme clé et obtenu par le biais du modèle "blog-list.html", ce qui est fait en renvoyant la réponse à l'aide de la fonction " render".
Changements dans les vues et les urls
Créez un nouveau fichier appelé 'urls.py' dans 'django_blog/blog' et ajoutez les changements suivants. Il existe une importation relative aux vues "blog_list" ainsi qu'une "urlpatterns", qui est une liste des chemins d'accès à une page spécifique du site web. Actuellement, le <b'path'' contient la chaîne vide et le nom de la vue.
Changement dans les vues et les urls
Passons à 'django_blog/urls.py' et importons include et faisons un changement dans 'urlpatterns'. Ajoutez ensuite le chemin d'accès à l'URL de votre application par le biais d'un include. De même, lorsque les utilisateurs passent par "posts/", ils sont dirigés vers notre "blog.urls".

Création et modification des modèles

Nous allons créer un dossier de modèles qui contient généralement le "HTML" et leur propre langage de création de modèles appelé " Jinja2".Le dossier doit s'appeler "templates/blog/blog_list.html", ce qui est la convention.
Création et modification des modèles
Vous pouvez voir ci-dessous la syntaxe liée au "HyperTextMarkup Language" (HTML), où "h1" représente le gros titre et une liste non ordonnée(ul) avec l'élément de liste li. La syntaxe de boucle "for" de Jinja 2 est également utilisée pour l'itération d'un objet appelé "blog_list" provenant de "blog/views.py" et dont chaque élément est appelé "list".
Création et modification des modèles
Affichez le "titre" intitulé "Premier message" sur la page web.
Créer et modifier les modèles
Ajoutons une autre information à partir du panneau d'administration, de la même manière que ci-dessus, et nommons le titre de votre deuxième article "Second Post".
Création et modification des modèles
Après avoir ajouté les informations et rechargé la page d'accueil, les informations seront mises à jour.
Création et modification des modèles

Détails pour chaque poste individuel

Vous créerez chaque page individuelle contenant des informations relatives au titre de l'article et à son contenu. L'url sera "localhost:8000/posts/'id'" où id indique le numéro unique ou la clé primaire attachée à chaque "Post" donnée par Django lui-même.
Créons une fonction "blog_detail" dans "blog/view.py" , qui accepte id comme paramètre. Il existe également une requête permettant d'obtenir un identifiant spécifique et de l'enregistrer dans "each_post". De la même manière, les informations nécessaires sont transmises en tant que contexte au fichier "blog_detail.html".
Détails pour chaque article
L'url dans 'blog/urls.py' est modifiée et le chemin contient le '', qui accepte l'identifiant unique sous la forme d'un nombre entier. Supposons que l'utilisateur se rende sur "posts/" et qu'il voit tous les posts, mais que lorsqu'il se rend sur "posts/1", il ne voit que les informations concernant le premier post créé.
Détails de chaque article
Créons un nouveau fichier, "blog/blog_detail.html", et apportons-y les modifications suivantes. Comme blog_detail est transmis en tant que contexte, le "titre" et le "contenu" sont accessibles à l'aide de la notation par points.
Détails pour chaque article
Allez à l'URL de votre navigateur et tapez la même chose pour obtenir les articles individuels. Puisque l'identifiant de la première information créée est "1", la deuxième information doit être "2" et ainsi de suite pour les nouvelles informations créées.
Détails pour chaque poste individuel

Suppression du message

Définissons la fonction blog_delete, qui prend en compte la requête et l'identifiant. De plus, une requête est faite où 'Post.objects.get(id=id)' récupère l'objet avec un identifiant unique et l'enregistre dans each_post. Enfin, HttpResponseRedirect est importé du module 'django.http' où il est utilisé pour rediriger la page vers '/posts/'
Suppression du poste
. Dans le fichier "urls.py", importez "blog_delete" et définissez le chemin d'accès à "<id>/delete", où l'identifiant avec "delete" à la fin supprime l'objet ou l'information en question.
Suppression du message
Supprimons notre message en tapant ce qui suit dans le fichier 'urls.py'.
Suppression du message
Enfin, la page est redirigée vers '/posts' lorsque 'posts/1/delete/' est appelé alors qu'il n'existe qu'un seul message sur la page d'accueil.
Suppression du message

Conclusion

Félicitations pour avoir terminé le tutoriel ! Vous avez appris les bases du développement web Django et connaissez les fonctionnalités CRUD. De plus, pour plus de détails sur un sujet particulier, consultez la documentation de Django.

Références :

FAQ sur le développement web Django en Python

Qu'est-ce que Django ?

Django est un framework web libre et gratuit écrit en Python qui suit le modèle architectural modèle-vue. Il est conçu pour aider les développeurs à faire passer les applications de la conception à la réalisation le plus rapidement possible.

Quelles sont les caractéristiques de Django ?

Parmi les caractéristiques de Django figurent une conception légère et modulaire, un puissant ORM (Object-Relational Mapper) qui simplifie les interactions avec les bases de données, et une prise en charge intégrée des tâches courantes de développement web telles que l'authentification et la gestion des utilisateurs, le traitement des formulaires et l'administration du contenu.

Comment démarrer avec Django ?

Pour commencer à utiliser Django, vous devez installer Python et la bibliothèque Django sur votre machine. Vous pouvez ensuite créer un nouveau projet Django à l'aide de la commande django-admin startproject et commencer à construire votre application en utilisant les fonctionnalités et les outils intégrés de Django.

Comment créer une base de données dans Django ?

Django utilise par défaut le moteur de base de données SQLite, qui est inclus avec Python. Vous pouvez créer une nouvelle base de données en définissant des modèles dans votre application Django et en exécutant la commande migrate. Cela créera les tableaux nécessaires dans la base de données pour stocker les données de vos modèles.

Comment créer des vues et des modèles dans Django ?

Dans Django, les vues sont des fonctions qui traitent les requêtes HTTP et renvoient des réponses HTTP. Vous pouvez créer des vues en définissant des fonctions dans votre application Django qui prennent une requête et renvoient une réponse. Les modèles sont des fichiers HTML qui contiennent des espaces réservés pour un contenu dynamique. Vous pouvez utiliser le langage de gabarit de Django pour insérer du contenu dynamique dans les gabarits et les rendre dans vos vues.

Comment déployer une application Django ?

Il existe plusieurs façons de déployer une application Django, en fonction de vos besoins et de vos préférences en matière d'hébergement. Parmi les options courantes, citons le déploiement sur une plateforme cloud comme Heroku ou AWS, l'utilisation d'un serveur web comme Apache ou Nginx, ou l'utilisation d'un service d'hébergement comme PythonAnywhere ou DigitalOcean.

Sujets

Cours de Python

cours

Introduction to Python

4 hr
6M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.

Nathaniel Taylor-Leach

8 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

See MoreSee More