17.8. Vues dans Django : travailler avec l'authentification

Página 99

Dans toute application Web, l'authentification est un élément crucial. Django, un framework de développement Web Python, offre un système d'authentification robuste et flexible qui permet aux développeurs d'implémenter des fonctionnalités d'authentification sans avoir à repartir de zéro. Dans ce chapitre, nous explorerons comment utiliser l'authentification dans les vues Django.

Pour commencer, il est important de comprendre que l'authentification dans Django est basée sur la session. Lorsqu'un utilisateur se connecte à une application Django, le framework crée une session pour cet utilisateur, qui est maintenue jusqu'à ce que l'utilisateur se déconnecte. La session est stockée côté serveur et le client (généralement un navigateur Web) reçoit un cookie avec un identifiant de session, qui est renvoyé au serveur à chaque requête ultérieure.

Django fournit plusieurs vues prédéfinies pour gérer l'authentification, qui se trouvent dans le module django.contrib.auth.views. Ces vues incluent, entre autres, la page de connexion, la page de déconnexion, la page de modification du mot de passe, la page de réinitialisation du mot de passe et la page de confirmation par e-mail.

Pour utiliser ces vues, vous devez d'abord configurer les URL correspondantes dans votre fichier d'URL. Par exemple, pour configurer l'URL de la page de connexion, vous pouvez ajouter la ligne suivante à votre urls.py :

à partir de django.contrib.auth importer des vues en tant que auth_views modèles d'URL = [ path('login/', auth_views.LoginView.as_view(), name='login'), #... ]

Après avoir défini l'URL, vous pouvez utiliser la vue correspondante dans vos modèles. Par exemple, vous pouvez créer un lien vers la page de connexion dans votre modèle de base comme ceci :

Connexion

Par défaut, la vue LoginView utilise un modèle appelé registration/login.html. Si vous souhaitez utiliser un modèle différent, vous pouvez le spécifier dans l'appel à as_view(). Par exemple :

path('login/', auth_views.LoginView.as_view(template_name='myapp/login.html'), name='login'),

En plus des vues d'authentification prédéfinies, Django offre également la possibilité de créer vos propres vues d'authentification. Pour cela, vous pouvez utiliser la fonction authenticate(), qui vérifie si les identifiants fournis par un utilisateur sont valides. Si les informations d'identification sont valides, authenticate() renvoie un objet User ; sinon, il renvoie Aucun.

Une fois que vous avez un objet User, vous pouvez l'utiliser pour démarrer une session pour l'utilisateur avec la fonction login(). Par exemple :

depuis django.contrib.auth importer authentifier, se connecter def my_login_view (requête) : si request.method == 'POST' : nom d'utilisateur = request.POST['nom d'utilisateur'] mot de passe = request.POST['mot de passe'] utilisateur = authentifier (demande, nom d'utilisateur = nom d'utilisateur, mot de passe = mot de passe) si l'utilisateur n'est pas Aucun : connexion (demande, utilisateur) # Redirection vers une page de réussite. redirection de retour ('home') autre: # Renvoie un message d'erreur 'Connexion invalide'. return render(request, 'myapp/login.html', {'error': 'Invalid login'}) autre: return render(requête, 'myapp/login.html')

En résumé, Django propose un certain nombre d'outils puissants pour travailler avec l'authentification dans vos vues. Que vous utilisiez les vues prédéfinies ou que vous créiez les vôtres, vous pouvez mettre en œuvre un système d'authentification robuste et sécurisé avec une relative facilité.

Répondez maintenant à l’exercice sur le contenu :

Quel est le rôle de Django dans le développement de l'authentification web ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

10017.9. Vues dans Django : création d'API avec Django Rest Framework

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte