Django est un framework web bien connu qui simplifie le processus de création d'applications web robustes, évolutives, sécurisées et performantes. C'est un projet open-source écrit en Python. Vous pouvez consulter plus d'informations détaillées sur Django ici.
Toute application web nécessite une base de données en backend pour gérer les données. Django prend en charge divers moteurs de base de données comme backend, par exemple, MySQL, PostgreSQL, SQLite etc. PostgreSQL est un système de gestion de base de données relationnelle-objet puissant et open-source. Il est réputé pour sa fiabilité, son évolutivité, sa sécurité et son ensemble de fonctionnalités robustes. Vous pouvez en savoir plus sur PostgreSQL ici.
Dans ce guide, nous allons présenter l'intégration de PostgreSQL en tant que backend sur un exemple d'application Django.
Prérequis
Travailler avec Django nécessite certaines configurations système.
- Un serveur Ubuntu 21.04 correctement configuré. En savoir plus sur la configuration d'un serveur Ubuntu.
- Un environnement de développement Python. Django est écrit en Python, il nécessite donc l'environnement Python pour s'exécuter.
- PostgreSQL installé, car nous allons l'utiliser comme serveur de base de données pour notre application Django. En savoir plus sur l'installation et la configuration de PostgreSQL sur Ubuntu ici.
Ce guide montrera également comment utiliser divers modules et bibliothèques Python nécessaires à une application Django fonctionnelle.
Étape 1. Installation des composants nécessaires
Pour que notre projet fonctionne, nous avons besoin d'un certain nombre de paquets importants installés sur notre système Ubuntu. Heureusement, ils sont tous directement disponibles dans les dépôts de paquets officiels d'Ubuntu. Ces paquets comprennent des composants Python et des composants de base de données (PostgreSQL).
Tout d'abord, lancez le terminal et mettez à jour le cache des paquets APT :
|
1 |
sudo apt update |
Ensuite, installez les paquets :
|
1 |
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib |
Étape 2. Préparation de la base de données
PostgreSQL est maintenant installé et prêt à l'emploi. Ensuite, nous nous apprêtons à créer une base de données dédiée et un utilisateur pour notre application Django. Avoir un utilisateur dédié est bénéfique pour la gestion de la base de données et des permissions.
Lors de l'installation, PostgreSQL crée un utilisateur dédié postgres. Il détient la permission d'effectuer n'importe quelle tâche d'administration sur PostgreSQL. Accédez au compte postgres :
|
1 |
sudo su – postgres |
Vous devriez arriver sur une nouvelle session de terminal sous l'utilisateur postgres. Ensuite, ouvrez un terminal PostgreSQL :
|
1 |
psql |
Nous allons maintenant créer une base de données dédiée pour notre application Django. Il est recommandé de lui donner un nom correspondant à l'application Django :
|
1 |
CREATE DATABASE <database_name>; |
Ensuite, nous allons créer un utilisateur de base de données dédié. Nous utiliserons cet utilisateur pour accéder à la base de données dédiée à Django :
|
1 |
CREATE USER <username> WITH PASSWORD '<password>'; |
L'étape suivante consiste à ajuster quelques paramètres de connexion pour le nouvel utilisateur. Cela permet d'accélérer les opérations de base de données car cela n'exigera pas de requêter les valeurs à chaque fois qu'une connexion est établie. Exécutez les commandes suivantes :
|
1 2 3 |
ALTER ROLE <username> SET client_encoding TO 'utf8'; ALTER ROLE <username> SET default_transaction_isolation TO 'read committed'; ALTER ROLE <username> SET timezone TO '<timezone>'; |
Voyons rapidement le détail de ces commandes :
-
Nous définissons l'encodage par défaut sur UTF-8. C'est ce que Django attend lors de l'interaction avec les bases de données.
-
Le schéma de transaction par défaut est défini sur « read committed », de sorte que les lectures de transactions non validées soient bloquées.
-
Le fuseau horaire doit être défini en fonction de l'emplacement.
Si vous n'êtes pas sûr du nom du fuseau horaire, la commande suivante listera tous les fuseaux horaires pris en charge par PostgreSQL :
|
1 |
SELECT * FROM pg_timezone_names; |
Enfin, accordez au nouvel utilisateur tous les privilèges sur la base de données dédiée à Django :
|
1 |
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>; |
Notre travail avec PostgreSQL est maintenant terminé. Quittez le shell psql et déconnectez-vous de la session postgres .
Étape 3. Installation de Django
Nous avons configuré le serveur de base de données nécessaire pour notre application Django. Maintenant, nous allons installer et configurer l'application Django dédiée. Bien que Django soit directement disponible dans le dépôt officiel d'Ubuntu, nous ne recommandons pas d'utiliser cette méthode. Elle installera Django sur l'ensemble du système. Pour une meilleure flexibilité et une plus grande facilité de gestion, nous installerons plutôt Django dans un environnement virtuel. C'est une pratique courante d'installer et de configurer Django dans un environnement virtuel Python.
Python dispose d'un module virtualenv qui crée un environnement virtuel Python dans un emplacement cible. L'environnement obtient sa propre copie des fichiers binaires et des configurations de Python. Les modifications apportées au sein de l'environnement virtuel n'auront aucun impact sur le reste du système.
Installez virtualenv:
|
1 |
sudo apt install virtualenv |
Ensuite, notre objectif est de disposer d'un répertoire dédié pour établir l'environnement virtuel Python. Il servira de base à notre application Django. Pour la démonstration, le nom de notre application sera sample_app. Créez un nouveau répertoire :
|
1 |
mkdir -pv <dir_name> |
Modifiez le répertoire actif actuel et établissez l'environnement virtuel :
|
1 2 |
cd sample_app/ virtualenv sample_app_env |
Après cela, activez l'environnement virtuel :
|
1 |
source sample_app_env/bin/activate |
L'environnement virtuel est maintenant prêt et fonctionnel. Ensuite, nous utiliserons pip pour installer Django et psycopg2 (un adaptateur Python pour PostgreSQL) :
|
1 |
pip install django psycopg2 |
Enfin, nous pouvons créer un nouveau projet Django à l'aide des outils Django. Cela générera un répertoire enfant du même nom hébergeant tout le code et un script de gestion dans le répertoire actuel :
|
1 |
django-admin startproject <project_name> . |
Étape 4. Configuration du projet Django
Le projet Django dispose de tous les outils de base pour fonctionner comme une application web. Pour l'intégrer à notre base de données, nous devrons effectuer quelques ajustements dans ses fichiers de configuration.
Ouvrez le fichier settings.py dans un éditeur de texte :
|
1 |
nano settings.py |
Faites défiler vers le bas jusqu'à la section DATABASES. Par défaut, elle est configurée pour utiliser SQLite:
Pour notre usage, modifiez le code comme suit :
|
1 2 3 4 5 6 7 8 9 10 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '<db_name>', 'USER': '<db_user>', 'PASSWORD': '<db_user_password>', 'HOST': 'localhost', 'PORT': '', } } |
Ici, nous indiquons à Django d'utiliser l'adaptateur psycopg2 pour la communication avec la base de données. Nous déclarons également toutes les informations de base de données nécessaires, telles que le nom de la base de données ainsi que le nom d'utilisateur et le mot de passe de l'utilisateur dédié.
Une fois terminé, enregistrez le fichier et fermez l'éditeur.
Étape 5. Migration de la base de données
Django est configuré pour accéder à notre base de données PostgreSQL. Nous pouvons maintenant migrer la structure des données vers notre base de données. Dans Django, cela s'appelle une migration.
Pour migrer les modifications de la base de données, appelez le script de gestion manage.py:
|
1 |
python manage.py makemigrations |

|
1 |
python manage.py migrate |
Ensuite, créez un superutilisateur pour notre application Django :
|
1 |
python manage.py createsuperuser |
Ce compte de superutilisateur servira de compte administrateur pour notre application Django.
Étape 6. Tester les modifications
Jusqu'à présent, nous avons apporté plusieurs modifications à notre application Django. Il est temps de vérifier si tout fonctionne comme prévu. Nous allons le vérifier en lançant l'application et en accédant au panneau d'administration.
Comme nous développons l'application Django localement, nous allons démarrer le serveur sur localhost. Par tradition, nous le lancerons sur le port 8000. Si vous avez configuré un pare-feu, celui-ci doit autoriser le trafic vers le port 8000. En savoir plus sur les bases d'UFW ici.
Lancez le serveur Django :
|
1 |
python manage.py runserver localhost:8000 |
Accédez à l'URL dans un navigateur :
|
1 |
http://localhost:8000 |
Vous devriez arriver sur la page de réussite de l'installation de Django. Pour accéder à la page d'administration de Django, allez à l'URL suivante :
|
1 |
http://localhost:8000/admin |
Vous devez utiliser le superutilisateur que nous avons créé pour vous connecter :
Voilà ! Nous avons réussi à accéder au panneau d'administration !
Une fois que vous avez terminé l'exploration, appuyez sur Ctrl + C depuis la console pour arrêter le serveur Django.
Réflexions finales
Dans ce guide, nous avons démontré avec succès la création d'une application Django d'exemple et la configuration de PostgreSQL comme backend. Bien que SQLite soit généralement plus que suffisant pour répondre aux besoins pendant le développement (et pour une utilisation légère en production), la plupart des projets bénéficieront grandement d'un passage à un SGBD plus complet. PostgreSQL est une excellente option pour la performance et l'évolutivité.
Django est un framework web polyvalent qui peut fonctionner avec de nombreuses technologies. Jetez un œil à d'autres guides cloud qui démontrent l'utilisation de Django :
- Configuration de Django avec PostgreSQL, Nginx et Gunicorn sur Ubuntu 20.04
- Création d'une application Django et Gunicorn avec Docker sur Ubuntu
- Comment sécuriser et mettre à l'échelle une application Django avec Docker, Nginx et Let’s Encrypt
- Création d'une application Django avec connexion à une base de données : un tutoriel
Bon développement !






















Commentaires
Aucun commentaire pour l'instant. Soyez le premier.