Fermer

mai 8, 2022

Comment démarrer rapidement un projet Django et une application Django

Comment démarrer rapidement un projet Django et une application Django


Dans ce didacticiel, nous allons apprendre la différence entre un projet Django et une application Django, et comment démarrer un nouveau projet Django.

Django est le framework Web Python de choix pour créer des applications Web. Il s’agit d’un framework mature, complet, flexible et open source qui vous permet de créer n’importe quoi, d’une simple application CRUD à un projet multi-applications plus complexe comme un application de partage de photos.

Conditions

Vous n’avez pas besoin de connaissances préalables pour mettre en place un projet Django. Mais Django est un framework Python, donc pour l’utiliser, vous devriez avoir des bases solides avec Python.

Avant de commencer, assurez-vous d’avoir un terminal ou une invite de commande avec Python 3.6 ou version ultérieure installé.

Python 3 est installé par défaut sur la plupart des systèmes macOS et Linux, mais si vous utilisez Windows, vous devrez télécharger et installer Python. Vous pouvez suivre ce guide depuis le site officiel Python.

Vous pouvez ouvrir un terminal en ouvrant l’outil de recherche d’applications de votre système d’exploitation et en recherchant Terminalou sous Windows, commande.

Ouvrir un terminal avec application finder

Une fois que vous avez configuré un terminal, il est temps de confirmer votre version de Python. Pour ce faire, tapez la commande suivante :

python --version

Python 3.9.7 

Si vous n’obtenez pas de résultat du formulaire Python 3.x, ne paniquez pas. Il y a deux options :

  • si python --version retourné une version Python 2.x, vous devrez utiliser python3 accompagné de ce tutoriel. Cela se produit généralement avec certains systèmes macOS, ainsi qu’avec certains Distributions Linux comme Ubuntu. Essayez d’exécuter la commande suivante :

    python3 --version
    
    Python 3.9.7 
    
  • si vous avez un Unknown command erreur, j’ai essayé d’exécuter python3et que vous avez toujours une autre erreur, vous devrez télécharger et installer Python à partir du site Web officiel.

Maintenant que vous savez quelle commande Python exécuter dans votre terminal, plongeons dans les projets Django.

Qu’est-ce qu’un projet Django ?

Un projet Django est un package Python nécessaire au fonctionnement d’une application Web. Il contient tout ce dont vous avez besoin pour construire le backend (développement côté serveur, ce que les utilisateurs ne voient pas) de votre site. La fonctionnalité normale d’un projet Django détermine la manière dont vous interagissez avec la base de données, l’authentification, la manière dont les données sont récupérées, etc.

Vous pouvez également le considérer comme une collection de paramètres et de petits modules Python nommés apps. Nous en parlerons plus tard, mais en tant que pré-concept, une application est un autre ensemble de fichiers Python qui résolvent une tâche spécifique de votre application.

À travers cet article, vous découvrirez la structure sophistiquée d’un projet Django. Mais dès le départ, je veux que vous sachiez qu’un projet Django peut être réduit à un seul fichier, quelque chose de similaire à un Ballon projet.

Une rapide démonstration en est la Django minimal projet. Il s’agit d’un fichier de 23 lignes de code qui nous permet d’apporter un Django « Hello, World! » projet de vie :

import sys

from django.conf import settings
from django.urls import path
from django.core.management import execute_from_command_line
from django.http import HttpResponse

settings.configure(
    DEBUG=True,
    ROOT_URLCONF=sys.modules[__name__],
)


def index(request):
    return HttpResponse('<h1>A minimal Django response!</h1>')


urlpatterns = [
    path(r'', index),
]

if __name__ == '__main__':
    execute_from_command_line(sys.argv)

Désormais, un projet Django peut aller beaucoup plus loin. Un bon exemple est Instagram, qui possède des milliers de points de terminaison Django et utilise toujours ce cadre pour des fonctionnalités cruciales.

Comment configurer un projet Django

Ne vous inquiétez pas trop si certaines des commandes suivantes semblent complexes. Après avoir créé quelques projets, vous les connaîtrez comme votre poche.

Tout d’abord, vous devez savoir que Django est un package externe. En d’autres termes, il n’est pas intégré à Python, vous devrez donc l’installer avec PIP.

PIP est un gestionnaire de packages pour Python, un outil qui vous permet d’installer des packages Python à partir du Index des packages Python (PyPI).

Maintenant, avant d’installer le package Python réel, vous devrez créer un environnement virtuel. C’est une bonne pratique de créer un environnement virtuel pour chaque projet Django que vous construisez, afin que vous puissiez garder une trace des dépendances.

Peut-être que le code que vous avez dans un projet Django 2.6 peut ne pas fonctionner avec Django 3.0. Un environnement virtuel vous permet d’avoir des exigences spécifiques pour chaque projet que vous avez.

Vous pouvez créer un environnement virtuel nommé .venv (ou le nom que vous voulez) avec la commande suivante :

python -m venv .venv

Maintenant, si vous répertoriez les fichiers dans le répertoire courant, vous verrez un nouveau dossier appelé .venvqui contient en même temps des binaires Python isolés :

$ ls -lah .venv/
Permissions Size User   Date Modified Name
drwxr-xr-x     - daniel 10 nov 23:13  .
drwxr-xr-x     - daniel 10 nov 23:13  ..
drwxr-xr-x     - daniel 10 nov 23:13  bin
drwxr-xr-x     - daniel 10 nov 23:13  include
drwxr-xr-x     - daniel 10 nov 23:13  lib
lrwxrwxrwx     3 daniel 10 nov 23:13  lib64 -> lib
.rw-r--r--    69 daniel 10 nov 23:13  pyvenv.cfg

Pour activer votre environnement virtuel, vous devez l’activer avec la commande suivante :

source .venv/bin/activate

Cela ne fonctionnera que sur les shells bash (disponibles sur macOS et Linux). Si vous utilisez un shell différent, vous pouvez jeter un œil à l’activation suivante venv table:

PlateformeCoquilleCommande pour activer l’environnement virtuel
POSIXbash / zsh$ source .venv>/bin/activate
poisson$ source .venv>/bin/activate.fish
csh/tcsh$ source .venv>/bin/activate.csh
Noyau PowerShell$ .venv/bin/Activate.ps1
les fenêtrescmd.exeC:\> .venv\Scripts\activate.bat
PowerShellPS C:\> .venv\Scripts\Activate.ps1

Un moyen de vérifier que votre shell est activé consiste à rechercher les modifications dans votre invite. Dans mon cas, ce que j’ai vu est illustré ci-dessous.

Invite d'environnement virtuel

Maintenant, installez le package Django. Vous pouvez installer la dernière version ou une version spécifique de Django :

pip install django 
pip install django==2.2 

Démarrer le projet

Une fois que vous avez installé Django, pour démarrer un nouveau projet, vous appelez le django-admin utilitaire de ligne de commande et exécutez :

django-admin startproject <project_name>

Il convient de mentionner que certains noms sont réservés à Django — django ou alors django-admin. Ne vous inquiétez pas si vous obtenez une erreur. Essayez simplement d’utiliser un autre nom de projet :

django-admin startproject django

django-admin startproject django-admin

Une pratique courante consiste à nommer votre projet comme config, et cela présente certains avantages. Premièrement, c’est un nom que vous pouvez garder cohérent dans tous vos projets, et deuxièmement, normalement, le dossier « projet » ne stocke que les fichiers liés à la configuration. Vous pouvez en savoir plus sur l’officiel Forum Django:

django-admin startproject config

Structure du projet Django

Une fois que vous avez démarré un projet Django, vous verrez un nouveau dossier avec le nom du projet que vous avez choisi, et une structure similaire à celle-ci :

.
├── config
│   ├── config
│   │   ├── asgi.py
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── manage.py
└── .venv

Analysons chaque partie en profondeur :

  • config/ est le dossier externe de votre projet. Cela n’a pas d’importance pour Django, vous pouvez donc le renommer comme vous le souhaitez.
  • config/config/ est le véritable dossier du projet Django. Il contient les fichiers de paramétrage de votre projet.
  • manage.py est un script Python avec la même fonctionnalité que django_admin mais utilise les paramètres de votre projet.
  • __init__.py fait du config/config un paquet Python.
  • settings.py est le fichier principal de votre projet. Vous pouvez ajouter, modifier ou supprimer des variables pour changer le comportement de votre projet.
  • urls.py est le fichier qui définit les URL de votre projet.
  • asgi.py et wsgi.py vous permettent de déployer votre projet sur un serveur.

Je sais que la structure du projet de Django peut être un peu complexe au début, mais avec le temps, cela commence à avoir un sens. Chaque fichier a un but et le processus de développement devient vraiment agréable.

Un raccourci courant consiste à omettre la création du dossier externe. Ceci est utile car vous n’aurez pas à modifier la structure de votre projet lors du déploiement sur quelque chose comme Heroku :

django-admin startproject <project_name> .

Ainsi, par exemple, pour chaque projet Django que vous démarrez, vous pouvez exécuter la commande suivante :

django-admin startproject config .

Essayez chaque commande par vous-même et décidez laquelle vous convient le mieux.

Pour terminer cette section, nous allons démarrer le serveur de développement Django et vérifier que la configuration du projet a réussi.

Accédez au dossier racine de votre projet (où manage.py se trouve) et démarrez le serveur avec cette commande :

python manage.py runserver

Maintenant, sautez dans votre navigateur, tapez hôte local : 8000/ et vous devriez voir la page par défaut de Django.

Page d'accueil de Django

Comment configurer une application Django

Comme je vous l’ai dit plus tôt, un projet Django est différent d’une application Django.

D’après la documentation officielle : « Une application est une application Web qui fait quelque chose ». Ce quelque chose est une fonctionnalité spécifique telle que l’application d’un utilisateur, une application de commentaires, une application de chat.

Plus vos applications sont ciblées sur les fonctionnalités, mieux c’est.

Une application Django est autonome, ce qui signifie qu’elle peut être réutilisée d’un projet à l’autre. C’est pourquoi vous pouvez installer une application externe, comme Django-allauthet utilisez-le dans votre projet, simplement en l’ajoutant au INSTALLED_APPS variable.

Vous passerez la majeure partie de votre temps à travailler avec des applications, car, une par une, elles créent toutes les fonctionnalités de votre projet.

A partir de maintenant, vous utiliserez le manage.py utilitaire, donc pour créer une application, allez dans le dossier racine de votre projet et exécutez la commande suivante :

python manage.py startapp <app_name>

Essayez d’être aussi précis que possible avec les noms de vos applications. Si vous souhaitez créer une application pour intégrer les paiements avec PayPal ou Stripe, nommez-la simplement payments:

python manage.py startapp payments

Approfondissons la structure d’une application Django :

.
├── config
│   ├ ...
├── manage.py
└── payments
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py
  • payments/ est le dossier de votre application.
  • admin.py est utilisé pour enregistrer les modèles dans l’interface d’administration de Django.
  • apps.py définit la configuration de l’application.
  • models.py est utilisé pour stocker les modèles, qui sont les objets que nous créons pour stocker et contrôler les données.
  • migrations/ est le dossier qui contient les scripts de migration de l’application. Vous exécutez des migrations pour appliquer les modifications de nos modèles dans une base de données.
  • tests.py est utilisé pour tester l’application.
  • views.py est le fichier où nous définissons les vues de notre application. Une vue est un appelable Python qui reçoit une requête HTTP et renvoie une réponse HTTP.

Dans vos applications, vous pouvez créer d’autres fichiers et dossiers, et même créer des modèles, qui sont la façon Django d’afficher dynamiquement des données sur une page Web.

Aide-mémoire de commande

Nous avons utilisé de nombreuses commandes dans ce didacticiel, voici donc un résumé de l’objectif de chaque commande.

CommandeLa description
python -m venv (name_of_venv)Crée un environnement virtuel
source (venv)/bin/activateActive un environnement virtuel
django-admin startproject (project_name)Démarre un projet Django
django-admin startproject (project_name) .Configure un projet dans le même répertoire
python manage.py runserverExécute le serveur Django
python manage.py startapp (app_name)Crée une application Django

Conclusion

Django est un framework Web à pleine batterie qui vous permet de créer tout type d’application. La configuration d’un projet Django est rapide et facile, et vous pouvez commencer à travailler sur votre projet immédiatement.

Avec ce tutoriel, vous avez appris à :

  • créer un environnement virtuel
  • installer une version spécifique de Django
  • démarrer un projet Django
  • exécuter un serveur Django
  • créer une application Django
  • différencier une application Django d’un projet Django

Pour aller plus loin, consultez « Créer une application de partage de photos avec Django”.




Source link