Gestion des utilisateurs Django

1 - Création d'une application accounts

Afin de pouvoir gérer les utilisateurs django, nous devons d'abord effectuer les étapes préliminaires que nous avons déjà abordées dans les tutoriels précédents:

  1. Créer un projet Django nommé mysite
  2. Créer une interface administrateur
  3. Créer une application nommée accounts

Enregistrons ensuite notre application blog au niveau du fichier settings.py:

Notre site aura donc la structure suivante:

django project structure auth users




Configurons ensuite notre template:

Créons ensuite les fichiers du template:

1- Fichier de la page d'accueil "template/index.html"
2- Le répertoire 'registration'  à la racine du  template 
3- Les fichiers de connexion et de déconnexion:
      - 3.a template/registration/login.html
      - 3.b template/registration/logout.html
      - 3.c template/registration/signup.html

Comme le montre la figure suivante:

.

2 - Système d'authentification des utilisateurs à l'aide du système django.contrib.auth

2.1 A propos du système django.contrib.auth

Django possède actuellement un système d'authentification intégré qui est django.contrib.auth. Il suffit de l'ajouter au fichier urls.py de votre projet pour béneficier d'une application d'authentification complète permettant de connecter, déconnecter un utilisateur, lui donner aussi la possibilité de changer son mot de passe...
Afin de pouvoir utiliser ce système d'authentification intégré de django, nous devons configurer son url au niveau du fichier mysite/accounts/urls.py:

Et on dois ensuite configurer le fichier des urls du projet: mysite/urls.py

L'application d'authentification django.contrib.auth qui s'installe automatiquement avec un nouveau projet Django dispose de plusieurs vues et URL d'authentification pour gérer la connexion, la déconnexion et la gestion des mots de passe. Les URL fournies par auth sont :




2.2 Login and logout page

Fichier d'authentification template/registration/login.html

Maintenant, si nous tapons dans le navigateur, l'adresse url : http://127.0.0.1:8000/accounts/login/ nous obtenons le formulaire d'authentification de l'utilisateur :

Et si on tape l'adresse url http://127.0.0.1:8000/accounts/logout/ on obtient ce message indiquant que l'utilisateur est déconnecté :

2.3 - Paramétrage de la page d'accueil

On peut maintenant configurer la page d'accueil pour qu'elle affiche un message de bienvenue à l'utilisateur lorsqu'il est connecté et sinon un message indiquant qu'il n'est pas connecté suivi d'un lien vers la page de connexion. Commençons par la configuration du fichier de template :

Et finalement on redirige l'utilisateur vers la page d'accueil après connection ou déconnexion en ajoutant le code suivant à la fin du fichier settings.py:

Et maintenant si on tape l'adresse url: http://127.0.0.1:8000/ on obtient:

Et après connexion on obtient:




3 - Enregistrement des utilisateurs

3.1 - Création du formulaire d'enregistrement via la classe UserCreationForm

Créons maintenant un fichier mysite/accounts/forms.py et insérons au sein duquel le code suivant:

3.2 - Création du view de l'application

Nous créons ensuite le view de l'application qui comporte une méthode pour le formulaire d'enregistrement des utilisateurs:

3.3 - Configuration des urls

Nous devons maintenant configurer les urls et leurs chemins d'accès au niveau du fichier mysite/accounts/urls:

3.4 - Configuration au niveau du template

Nous devons maintenant ajouter le formulaire d'inscription au niveau du template:

Et finalement en démarrant le serveur et en tapant l'adresse url: http://127.0.0.1:8000/signup/ , on obtient la vue suivante:





3.5 - Amélioration du design du formulaire d'enregistrement Django à l'aide du framework Bootstrap4

Vous avez sans doute remarqué que le formulaire d'enregistrement est n'est pas très agréable! Que faut il faire pour améliorer son look ? Et bien le problème est simple, il suffit pour cela d'utiliser le template starter du framework bootstrap!
Commencez alors par installer le module suivant sur votre virtuel environnement à l'aide de l'utilitaire pip:

et enregistrez ensuite l'application au niveau du fichier settings.py:

Ajoutez ensuite la ligne de code suivante à la fin du fichier settings.py

Intégrez ensuite le framework bootstrap starter en ajoutant le code suivant à votre fichier signup.html ou votre fichier de base de template si vous utilisez l'héritage de template:

Le code peut être télécharger via cette adresse

Ensuite à la tête de votre code, ajoutez la ligne :

remplacez ensuite:

par:

et placez le code du formulaire dans une table html pour limiter les dimensions. Voici le code finale du fichier signup.html:

Voici l'aspet final du formulaire:

Younes Derfoufi
CRMEF OUJDA

1 thought on “Gestion des utilisateurs Django

Leave a Reply