Créé une application de gestion d’authentification avec Python Django
La création d’une application de gestion d’authentification avec Django peut être un projet intéressant pour comprendre les fonctionnalités de base de Django, y compris l’authentification utilisateur. Voici un tutoriel complet avec un code d’exemple pour créer une telle application :
Prérequis :
- Python installé sur votre système.
- Django installé. Vous pouvez l’installer avec
pip install django
.
Étapes pour créer l’application de gestion d’authentification :
Étape 1 : Création du projet Django
Ouvrez votre terminal et exécutez la commande suivante pour créer un nouveau projet Django nommé « auth_project » :
django-admin startproject auth_project
cd auth_project
Étape 2 : Création de l’application Django
Ensuite, créez une nouvelle application Django appelée « auth_app » avec la commande suivante :
python manage.py startapp auth_app
Étape 3 : Configuration de la base de données
Ouvrez le fichier auth_project/settings.py
et ajoutez "auth_app"
à la liste INSTALLED_APPS
:
INSTALLED_APPS = [
# ...
'auth_app',
# ...
]
Configurez également la base de données dans le même fichier en spécifiant le moteur de base de données (par exemple, SQLite) :
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Étape 4 : Configuration de l’authentification
Ajoutez la configuration d’authentification Django à votre fichier auth_project/settings.py
:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
AUTH_USER_MODEL = 'auth_app.CustomUser'
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = '/'
Étape 5 : Création du modèle utilisateur personnalisé
Dans le fichier auth_app/models.py
, créez un modèle utilisateur personnalisé en étendant AbstractUser
. Vous pouvez ajouter des champs personnalisés au modèle utilisateur si nécessaire :
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
# Ajoutez des champs personnalisés si nécessaire
pass
Étape 6 : Configuration de l’application d’authentification
Dans le fichier auth_project/settings.py
, spécifiez votre modèle utilisateur personnalisé dans la configuration d’authentification :
AUTH_USER_MODEL = 'auth_app.CustomUser'
Étape 7 : Création des vues et des URL
Créez des vues pour l’inscription, la connexion et la déconnexion dans le fichier auth_app/views.py
. Par exemple :
from django.contrib.auth import login, authenticate, logout
from django.shortcuts import render, redirect
from .forms import CustomUserCreationForm
def signup(request):
if request.method == 'POST':
form = CustomUserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home')
else:
form = CustomUserCreationForm()
return render(request, 'signup.html', {'form': form})
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
return render(request, 'login.html')
def logout_view(request):
logout(request)
return redirect('login')
Créez également les URL correspondantes dans le fichier auth_app/urls.py
:
from django.urls import path
from . import views
urlpatterns = [
path('signup/', views.signup, name='signup'),
path('login/', views.login_view, name='login'),
path('logout/', views.logout_view, name='logout'),
]
Étape 8 : Création des modèles de formulaire
Créez des modèles de formulaire pour l’inscription en utilisant Django Forms dans le fichier auth_app/forms.py
. Par exemple :
from django import forms
from django.contrib.auth.forms import UserCreationForm
from .models import CustomUser
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = CustomUser
fields = UserCreationForm.Meta.fields + ('email',) # Ajoutez d'autres champs personnalisés si nécessaire
Étape 9 : Création des templates HTML
Créez des templates HTML pour les vues d’inscription, de connexion et de déconnexion dans le répertoire auth_app/templates
. Par exemple, signup.html
:
{% extends 'base.html' %}
{% block content %}
<h2>Inscription</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Inscription</button>
</form>
{% endblock %}
Étape 10 : Configuration des URLs du projet
Dans le fichier auth_project/urls.py
, incluez les URLs de l’application d’authentification :
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('auth_app.urls')),
]
Étape 11 : Exécution de l’application
Exécutez votre application Django en utilisant la commande suivante :
python manage.py runserver
Vous pouvez maintenant accéder à votre application de gestion d’authentification à l’adresse http://127.0.0.1:8000/. Vous pourrez vous inscrire, vous connecter et vous déconnecter.
Ce tutoriel vous a montré comment créer une application de gestion d’authentification avec Django, y compris la création d’un modèle utilisateur personnalisé, la configuration de vues et d’URL, la création de modèles de formulaire, et la gestion des templates HTML. Vous pouvez ensuite personnaliser et étendre cette application en fonction de vos besoins spécifiques.
107 commentaires